无法使defaultRedirect工作

dev*_*xer 12 asp.net-mvc asp.net-mvc-3

在我的web.config中,我有:

<system.web>
    <customErrors mode="On" defaultRedirect="Error.cshtml" />
</system.web>
Run Code Online (Sandbox Code Playgroud)

在Views/Shared/Error.cshtml中,我有:

@model System.Web.Mvc.HandleErrorInfo
@{
    ViewBag.Title = "Error";
}
<h2>
    Sorry, an error occurred while processing your request.
</h2>
Run Code Online (Sandbox Code Playgroud)

如果我将无效的URL /路由放入浏览器,我会得到:

'/'应用程序中的服务器错误.

无法找到该资源.

说明:HTTP 404.您要查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用.请查看以下网址,确保拼写正确.

请求的URL:/Error.cshtml

为什么找不到Error.cshtml?该文件肯定在Views/Shared中.

Col*_*kay 9

defaultRedirect不会直接转到视图.您的defaultRedirect看起来像一个无法处理的剃刀视图文件.例如:它从哪里获得模型?它不是也不能在配置文件中指定,因此它无法处理视图.

如果您想在MVC中使用更多动态错误页面,则可能需要在MVC 3中读取自定义错误页面和错误处理


小智 5

这个对我有用.只需在web.config中进行此更改:

<system.web>
    <customErrors mode="On" defaultRedirect="~/Views/Shared/Error.cshtml">
    </customErrors>
</system.web>
Run Code Online (Sandbox Code Playgroud)