3

[HandleError]在控制器上设置了属性。

这是我的操作方法:

    public ActionResult ShowError()
    {

        throw new NullReferenceException();
        return View();
    }

这个动作方法有一个对应的视图。

我在配置中设置了自定义错误

<customErrors mode="On">     
</customErrors>

Error.cshtml在 Views 文件夹下的共享文件夹中有该文件。

现在导航到ShowError控制器方法会在我的 IDE 中打开这个窗口 在此处输入图像描述

按 F5 后,我在浏览器窗口中得到了这个,而不是共享文件夹中的错误页面。 在此处输入图像描述

还需要做什么来显示错误页面?我怎样才能HandleError开始工作?

谢谢

4

3 回答 3

2

行。所以问题出在我使用的浏览器上,即 IE 9。IE 9 似乎无法显示小于 1 KB 的错误页面。我把@(new String(' ', 1000))我的错误页面放在最后并让它工作。

于 2013-03-06T09:05:58.087 回答
1

文件指出

要启用自定义错误处理以供 HandleErrorAttribute 过滤器使用,请将 customErrors 元素添加到应用程序的 Web.config 文件的 system.web 部分,如以下示例所示:

<system.web>
  <customErrors mode="On" defaultRedirect="Error" />
</system.web>
于 2013-03-06T05:19:36.740 回答
0

您可以将视图的名称放在 defaultRedirect="Error" 中,如摩擦拉力所述,或者可以在操作、控制器或全局的 HandleError 属性中指定。

[HandleError(View="Error")]

如果您明确指定视图,则视图可以命名为“错误”以外的名称,例如“服务器错误”

[HandleError(View="ServerError")]

如果您需要灵活性,您还可以在 /Shared 中创建一个子文件夹以对多个错误视图进行分组

/Shared/Errors/Server.cshtml

然后使用属性中的路径

[HandleError(View="Errors/Server")]

在控制器和 /Shared 文件夹中搜索错误视图的文件夹。

于 2014-01-08T00:34:18.593 回答