相关疑难解决方法(0)

ASP.NET MVC中的错误处理

如何正确处理ASP.NET MVC中从控制器抛出的异常?该HandleError属性似乎只处理由MVC基础结构抛出的异常,而不是我自己的代码抛出的异常.

使用此web.config

<customErrors mode="On">
    <error statusCode="401" redirect="/Errors/Http401" />
</customErrors>
Run Code Online (Sandbox Code Playgroud)

使用以下代码

namespace MvcApplication1.Controllers
{
    [HandleError]
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            // Force a 401 exception for testing
            throw new HttpException(401, "Unauthorized");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

不会导致我所希望的.相反,我得到通用的ASP.NET错误页面,告诉我修改我的web.config以查看实际的错误信息.但是,如果不是抛出异常而是返回无效的View,我会得到/Shared/Views/Error.aspx页面:

return View("DoesNotExist");
Run Code Online (Sandbox Code Playgroud)

像我上面所做的那样在控制器中抛出异常似乎绕过了所有HandleError功能,那么创建错误页面的正确方法是什么,以及如何在MVC基础架构中发挥良好作用?

asp.net-mvc exception

64
推荐指数
4
解决办法
5万
查看次数

标签 统计

asp.net-mvc ×1

exception ×1