我正在使用ELMAH来处理我的MVC项目中的expception。一切正常,除非请求是ajax请求。
捕获并记录异常但是当我执行response.redirect到错误页面时,重定向不会发生,并且错误消息显示在同一页面上,与现有内容重叠。
以下是代码:
这是捕获异常的elmah代码。如果它是Ajax请求,我分配值“Y”
if (context.HttpContext.Request.IsAjaxRequest())
{
context.HttpContext.Session["IsAjax"] = "Y";
}
var e = context.Exception;
if (!context.ExceptionHandled
|| RaiseErrorSignal(e)
|| IsFiltered(context))
return;
LogException(e);
在我的全球asax文件中
在ErrorLog_Logged方法中,我将从ELMAH返回的GUID存储在稍后的会话变量中 向用户显示id,以便他们可以邮寄GUID,我可以看到针对数据库中相应elmah表的GUID查询异常。
protected void ErrorLog_Logged(object sender, ErrorLoggedEventArgs args)
{
var id = args.Entry.Id;
Session["ErrorId"] = id.ToString();
}
并在application_Error方法中执行以下操作
protected void Application_Error( object sender, EventArgs e )
{
Response.Redirect("/Error/Index");
}
我做错了什么。重定向不起作用,错误消息显示在现有页面的顶部。
我现有的页面有一堆jquery标签。
我真的无法理解这一点。如果有人知道答案,我会非常感激。
请帮忙。
提前致谢。