asp.net mvc errorhandler 未显示自定义错误页面

标签 asp.net asp.net-mvc asp.net-mvc-3 exception-handling

我正在尝试遵循 this link 中的示例和 this one但我没有显示错误页面,而是收到了 HTTP 500 内部服务器错误。
我有 <customErrors mode="On" />在 webconfig 中设置。我什至尝试应用 [HandleError]过滤到 Controller 类。我也试过没有。 Error.aspx 也存在于/Views/Shared/中,因此不可能是找不到文件的情况。

我在 Controller 的操作方法中抛出了一个 DivideByZero 异常。我想遵循该示例,以便我可以为需要它们的所有操作指定一个单独的错误页面。

我在创建的空白项目中使用 aspx View 引擎。这应该不是原因吧?。我也为此使用了母版页。有什么我可能会遗漏的吗?

谢谢

编辑添加代码

我将此代码添加到一个新项目并创建了 web.config 条目 <customErrors mode="On" />

 [HandleError]
    public class HomeController : Controller
    {
        //
        // GET: /Home/
        [HandleError]
        public ActionResult Index()
        {

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

    }

它没有用!然后我评论了 DivideByZeroException 并在 aspx View 中添加了无效的 Model.Property。在这两种情况下,我都收到了内部服务器错误。我已经按照文档做了所有要做的事情。我看到很多其他人也有同样的问题,但也无法解决。这是 MVC 3 中的错误吗?

最佳答案

我想我已经弄清楚真正的问题是什么。我的主页索引位于母版页中。我将相同的母版页添加到 Visual Studio 开箱即用的默认错误页面,它对我有用。

文档需要更清楚地指出这一重要要求,...如果它确实是一个。

另一个惊人的发现是你不需要用 [HandleError] 来装饰你的 Controller 类。属性。它也适用于默认的错误 View 。如果您想要为您的操作或 Controller 提供特定的自定义 View ,您可以提供该属性。
像这样:

[HandleError(View = "CustomError")]

...其中 CustomError.aspx 只是 View 的共享文件夹或 View-Controller 文件夹本身中的另一个普通 aspx View 页面。

有没有人在没有将错误页面放在母版页中的情况下完成这项工作,其中引发错误的主调用页面在母版页中?

关于asp.net mvc errorhandler 未显示自定义错误页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11231165/

相关文章:

asp.net - Azure Application Insights 不显示数据

asp.net - 为什么类型推断 (var) 不能与 ASP.NET GridView.Rows 属性一起使用?

c# - 无法调试 - "The breakpoint will not currently be hit. No symbols have been loaded for this document"

c# - ASP.NET MVC 3 : Multiple Html. RenderAction() 问题

c# - 新版本的 jQuery 加载另一个页面而不是替换 div

c# - 从 ASP.Net Webservice 获取超时

asp.net-mvc - v下一步。 AspNet.Identity 和自定义 UserStore。 UserStore 处理异常

c# - asp.net mvc 在数据库中插入数据并刷新部分

sql/c#错误: Cannot insert explicit value for identity column when IDENTITY_INSERT is set to off

asp.net-mvc-3 - MVC3下拉列表未选择所选项目