C# 在响应后调用函数。重定向

C# 在响应后调用函数。重定向,c#,asp.net,response.redirect,jgrowl,C#,Asp.net,Response.redirect,Jgrowl,我有一个ASP.NET网站,我正在使用jGrowl向用户显示通知。当用户停留在同一个页面上时,这非常有效,但是如果我重定向用户呢 例如,AddPerson.aspx是用于添加新人员的页面。添加人员后,用户将重定向到People.aspx。然后我想显示通知“Josh Smith已添加” 我目前在母版页中有一个执行javascript的函数: public void DisplayNotification(string html, string header) { string text =

我有一个ASP.NET网站,我正在使用jGrowl向用户显示通知。当用户停留在同一个页面上时,这非常有效,但是如果我重定向用户呢

例如,AddPerson.aspx是用于添加新人员的页面。添加人员后,用户将重定向到People.aspx。然后我想显示通知“Josh Smith已添加”

我目前在母版页中有一个执行javascript的函数:

public void DisplayNotification(string html, string header)
{
    string text = "\"" + html + "\"";
    string options = "{ header: '" + header + "', life: 6000 }";

    string scriptJGrowl = "$.jGrowl(" + text + ", " + options + ");";
    ScriptManager.RegisterStartupScript(Page, GetType(), Guid.NewGuid().ToString(), scriptJGrowl, true);
}

在响应.Redirect之后如何调用此函数?

Response.Redirect结束页面上的处理(并引发ThreadAbort异常)。您不能在Response.Redirect后调用。在之前调用它,或者让它成为您重定向到的页面中的第一件事


表示您可以将endResponse参数的值设置为false,并让代码继续执行,但在实践中,我看到它有时可以工作,其他的则不行。这是我不信任文档的极少数情况之一,实际上,事后重定向通常是我想要的。

Response.Redirect结束页面上的处理(并引发ThreadAbort异常)。您不能在Response.Redirect后调用。在之前调用它,或者让它成为您重定向到的页面中的第一件事


表示您可以将endResponse参数的值设置为false,并让代码继续执行,但在实践中,我看到它有时可以工作,其他的则不行。这是我不信任文档的罕见案例之一,实际上,事后重定向通常是我想要的。

简而言之,你不能。重定向后,页面不再执行


较长的答案是,如果您在重定向之前设置了cookie或会话变量,您可以在
people.aspx
页面中检测到这一点,并在设置后调用您的函数(不要忘记在此时清除它)。

简短的答案是您不能。重定向后,页面不再执行

较长的答案是,如果您在重定向之前设置了cookie或会话变量,您可以在
people.aspx
页面中检测到这一点,并在设置后调用您的函数(不要忘记在此时清除它)

通常情况下,我会使用自己的重定向,让我更清楚地知道我想要的是301、303、307还是(很少)302响应


通常情况下,我会使用自己的重定向,这样可以更清楚地知道我是想要301、303、307还是(很少)302响应。重定向确实如此。

您必须的一个选项是“通知”页面最近添加了用户。例如,您可以在URL中放置一些内容来发出此信号,也可以在会话中放置一些内容。然后,当您呈现People.aspx时,检查该值以查看是否有人刚刚添加,如果是,则显示通知。

必须的一个选项是“通知”页面最近添加了用户。例如,您可以在URL中放置一些内容来发出此信号,也可以在会话中放置一些内容。然后在呈现People.aspx时,检查该值以查看是否有人刚刚添加,如果是,则显示通知

Response.Redirect(newUri, false);
//stuff needed to be done before ending the handling here.
ApplicationInstance.CompleteRequest();