Blu*_*Fox 7 asp.net asyncpostbackerror
是否可以从Application_Error事件中确定当前请求是否是异步回发(部分页面更新)?
使用异步回发时,处理应用程序错误的最佳方法是什么?
在Application_Error中,我们重定向到不同的错误页面,但在异步回发期间抛出错误时,该方法无法正常工作.我们注意到,即使AllowCustomErrorsRedirect = false,我们也有一个OnAsyncPostBackError处理程序来设置AsyncPostBackErrorMessage.在异步回发期间,我们的AsyncPostBackErrorMessage被覆盖,客户端会收到通用网页错误.
在该Application_Error方法中,您不再可以直接访问<asp:ScriptManager>页面上的控件.因此处理其AsyncPostBackError事件为时已晚.
如果要阻止重定向,则应检查请求以确定它是否实际上是异步请求.在<asp:UpdatePanel>与下面的HTTP标头导致回发:
X-MicrosoftAjax:Delta=true
Run Code Online (Sandbox Code Playgroud)
(另请参阅:ScriptManager在您的Web应用程序中启用AJAX)
检查此标头将如下所示:
HttpRequest request = HttpContext.Current.Request;
string header = request.Headers["X-MicrosoftAjax"];
if(header != null && header == "Delta=true")
{
// This is an async postback
}
else
{
// Regular request
}
Run Code Online (Sandbox Code Playgroud)
至于处理异常的适当方式是一个不同的问题imho.
| 归档时间: |
|
| 查看次数: |
3905 次 |
| 最近记录: |