Muh*_*eed 11 .net c# asp.net asp.net-mvc asp.net-core-mvc
我想为每个状态代码显示不同的错误消息,例如:
如何在新的ASP.NET MVC 6应用程序中实现这一目标?我可以使用内置的UseErrorHandler方法执行此操作吗?
application.UseErrorHandler("/error");
Run Code Online (Sandbox Code Playgroud)
另外,我注意到即使使用上面的处理程序,输入一个不存在的URL,例如/ this-page-does-not-exist,也会导致IIS中出现一个丑陋的404 Not Found错误页面.怎么还能处理?
在MVC 5,我们不得不使用ASP.NET System.Web程序的customErrors部分,并在web.config文件中的system.webServer httpErrors部分,但它是很难用一个笨拙的工作,有很多很奇怪的行为.MVC 6能让这更简单吗?
Kir*_*lla 11
你可以使用StatusCodePagesMiddleware
这个.以下是一个例子:
public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
{
app.UseStatusCodePagesWithReExecute("/StatusCodes/StatusCode{0}");
app.UseMvcWithDefaultRoute();
Run Code Online (Sandbox Code Playgroud)
处理状态代码请求的控制器:
public class StatusCodesController : Controller
{
public IActionResult StatusCode404()
{
return View(viewName: "NotFound"); // you have a view called NotFound.cshtml
}
... more actions here to handle other status codes
}
Run Code Online (Sandbox Code Playgroud)
一些说明:
UseStatusCodePagesWithRedirects
和UseStatusCodePages
其他功能.