【发布时间】:2014-05-06 14:31:07
【问题描述】:
对于错误处理,我在 Web.config 中添加了以下代码:
<system.web>
<customErrors mode="On" defaultRedirect="~/Error.cshtml?">
</customErrors>
<system.web>
在 Global.asax.cs 中:
void Application_Error(object sender, EventArgs e)
{
// Code that runs when an unhandled error occurs
Response.Redirect("/Error.cshtml?");
}
但是,当重定向到/Error.cshtml 时呢?发生时,出现错误“此页面有重定向循环”
我搜索过其他类似的问题(例如How to solve Redirect Loop)。但是,我没有其他调用 Error.cshtml 的路由——那么有谁知道是什么导致了这个循环以及如何解决它?
编辑:发生了多个错误,因此错误页面重定向涉及重定向循环。有谁知道只调用一次 Response.Redirect("~/Error.cshtml") 的方法?
EDIT2:如果我将重定向 url 更改为项目外部的随机 url(例如 https://www.facebook.com/),customError 重定向将正常工作。仍在寻找一种方法来重定向到项目页面而不会无限循环错误
【问题讨论】:
-
Error.cshtml 中有什么?
-
我只有一些
test text
类型的标记,没有什么应该引起任何类型的循环
-
@suhMAN,你确定拨打
Response.Redirect后没有出错吗? -
我刚刚测试过,看起来我确实会继续出现在 Application_Error 函数中。我发现 Error.cshtml 实际上使用了@model System.Web.Mvc.HandleErrorInfo——这会有什么影响吗?
-
可能是 404 尝试检索错误页面。试试 ~/Error.cshtml