ASP.NET c# 中如何在重定向到另一个页面之前显示 ClientScript Alerts?

4

我需要解决一个问题...

我正在开发一个系统,其中不断向用户显示消息,例如... 我正在添加新客户,输入所有数据后点击保存,在C#中,我执行所有保存过程,然后使用...

ClientScript.RegisterStartupScript(this.GetType(), "Mensaje", "alert('Client Saved Successfully');", true);

就是这样... 最终消息会显示,因为我仍然停留在同一个站点(因为如果我想添加另一个客户端,我必须留在相同的站点,而不是返回到我的主屏幕),或者至少我没有告诉系统进行重定向...

然而这里还有另一个例子...

如果我要编辑客户端,我会被重定向到编辑屏幕,我输入所有更改并单击保存,在C#中,我会执行所有保存更改的过程,然后我使用与上面相同的客户端脚本,然后...

this.Response.Redirect("~/Main.aspx");

然而,我注意到如果我使用Response.Redirect,我将不再处于同一页上,警报将不会显示给用户....

这是我经常遇到的问题,我想知道可能的解决方案是什么...

谢谢,希望你能帮我。

3个回答

14

这是我为我的项目所拥有的内容:

public static void jsAlertAndRedirect(System.Web.UI.Page instance, string Message, string url)
{
    instance.Response.Write(@"<script language='javascript'>alert('" + Message + "');document.location.href='" + url + "'; </script>");
}
我从一个页面这样使用它:
HTMLHelper.jsAlertAndRedirect(this, "This is an alert.", ResolveUrl("~/Default.aspx"));

祝你好运。


1
太棒了。正是我想要的。非常感谢。 - DNR
@HanletEscaño.. 这个页面会提交。有没有办法在按钮被点击后不让页面提交?谢谢。 - LearningCSharp
如果您是从按钮执行此操作,请尝试更改submitBehavior属性。这是我现在能想到的唯一方法。如果不起作用,请告诉我。 - Hanlet Escaño
更改UseSubmitBehavior属性没有起作用。我打算创建一个新的帖子,看看是否有其他人能够提供答案。感谢您的代码,这是我寻找已久的东西。 - LearningCSharp

1
 string strScript = "&lt;script &gt;alert('The User has been added successfully.');                 window.location='AdminPanel.aspx';&lt; /script &gt;";
 Page.ClientScript.RegisterStartupScript(this.GetType(), "Startup",strScript);

1
  string  strScript = "<script>"+"alert('The User has been added successfully.');";
                strScript += "window.location='AdminPanel.aspx';";
                strScript += "</script>";
        Page.ClientScript.RegisterStartupScript(this.GetType(), "Startup", strScript);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接