在mvc3中使用开箱即用的handleError,问题

neo*_*neo 0 asp.net-mvc-3

我想做那样的事

首先,在visual studio 2010中创建一个新的mvc 3项目

接下来,打开Views\Shared\Web.config中的自定义错误

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

然后,我将Tag放在Index ActionResult,Home Controller中

Public Class HomeController
    Inherits System.Web.Mvc.Controller


    <HandleError()> _
    Function Index() As ActionResult
        ViewData("Message") = "Welcome to ASP.NET MVC!"
        Throw New InvalidOperationException
        Return View()
    End Function

    Function About() As ActionResult
        Return View()
    End Function



End Class
Run Code Online (Sandbox Code Playgroud)

最后运行应用程序,并始终显示黄色消息错误.我回顾了很多例子并总是表明这是正确的,但不起作用.

我感谢您的帮助

Dar*_*rov 5

您应该在 ~/web.config文件中执行此操作,而不是在以下文件中~/Views/Shared/Web.config:

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

还要确保它~/Views/Shared/Error.cshtml存在,因为这将是异常情况下的渲染视图.

并且您不再需要使用<HandleError()>属性来装饰控制器,因为ASP.NET MVC 3使用全局过滤器.