我们希望处理403错误,404错误,由于a导致的所有错误,MySpecialDomainException并为所有其他错误(包括IIS配置中的错误!)提供默认错误页面.所有错误都应该返回正确的Razor视图,ErrorController在视图前面有一个非常好的.例如,像这样:
public class ErrorController : Controller
{
public ViewResult NotFound () { return View(); }
public ViewResult Forbidden () { return View(); }
public ViewResult Default ()
{
var ex = ObtainExceptionFromSomewhere();
if(ex is MySpecialDomainException)
return View("MySpecialDomainException", new ErrorModel { Exception = ex });
return View("GeneralError", new ErrorModel { Exception = ex });
}
}
Run Code Online (Sandbox Code Playgroud)
目前,您可以在www上找到许多不同的方法,有些可能已经过时了.在这些:
Q1:使用ASP.NET MVC 5满足我们要求的推荐方法是什么?
我们还希望捕获IIS主机中发生的错误.Q2:为了防止IIS必须处理任何404,我们考虑添加一个匹配所有可能URL的默认路由 - 这是值得推荐的吗?最好注册IIS的404'?
问题3:甚至可以注册一个可以返回控制器的IIS错误页面,还是仅支持ASPX /静态HTML的IIS?