当我的网站上有任何网址为404时,我想显示使用ASP.NET-MVC呈现的自定义404页面。 Hoewever我不想使用通配符路由方法,因为这会禁用标准的webforms。我的代码目前看起来像这样:
if (serverException is HttpException && ((HttpException)serverException).GetHttpCode() == 404)
{
//Server.Transfer("~/Test.aspx"); //1
//Server.Transfer("~/error/gf54tvmdfguj85fghf/404"); //2
}
此代码位于App_Error
中// 1确实有用。 Test.aspx是一个标准的webform
// 2不起作用,因为它是一个asp.net-mvc路由
如何让MVC路由工作?
答案 0 :(得分:-1)
您可以使用应用程序错误事件......如下所示:
protected void Application_Error(object sender, EventArgs e)
{
//Check if it's a 404 error:
Exception exception = Server.GetLastError();
HttpException httpException = exception as HttpException;
if(httpException.GetHttpCode() == 404) {
//Redirect to the error route
Response.Redirect(String.Format("~/Error/404/?message={0}", exception.Message));
}
}