在mvc3中自定义404 html错误页面

时间:2014-09-13 09:01:38

标签: asp.net asp.net-mvc-3

如何使用自定义html错误页面进行404请求。目前我的错误请求显示错误页面有404请求。

//我想显示具有相同请求的自定义页面

3 个答案:

答案 0 :(得分:0)

将此代码添加为在global.asax中注册的最后一条路径:

routes.MapRoute(
    "404-PageNotFound",
    "{*url}",
    new { controller = "StaticContent", action = "PageNotFound" }
    );

请参阅:http://richarddingwall.name/2008/08/17/strategies-for-resource-based-404-errors-in-aspnet-mvc/

OR

以下是文章如何使用MVC创建自定义错误页面

http://kitsula.com/Article/MVC-Custom-Error-Pages

希望这可以帮到你!

答案 1 :(得分:0)

在web.xml文件中配置错误代码 例如:

<error-page>
 <error-code>500</error-code>
 <location>/WEB-INF/jsp/500.jsp</location>
</error-page>
<error-page>
 <error-code>503</error-code>
 <location>/WEB-INF/jsp/503.jsp</location>
</error-page>
<error-page>
 <error-code>404</error-code>
 <location>/WEB-INF/jsp/404.jsp</location>
</error-page>

答案 2 :(得分:0)

您可以使用Web.config中的customErrors为每种http错误设置自定义错误页面,它适用于所有ASP.NET请求:

<configuration>
  <system.web>
   <customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="Errors/500.aspx">
      <error statusCode="500" redirect="Errors/500.aspx"/>
      <error statusCode="404" redirect="Errors/404.aspx"/>
      <error statusCode="403" redirect="Errors/403.aspx"/>
    </customErrors>
  </system.web>
</configuration>

请参阅MSDN LINK:http://msdn.microsoft.com/en-us/library/h0hfz6fc(v=vs.85).aspx

或者您可以在MVC运行时使用Add ErrorFilterAttribute到全局过滤器:

GlobalFilters.Filters.Add(new System.Web.Mvc.HandleErrorAttribute());

然后将“Error.cshtml”视图文件添加到“/ Views / Shared /”文件夹,这是示例

@model object
@{
    var context = this.ApplicationInstance.Context;
    var ex = (Model is HandleErrorInfo ? ((HandleErrorInfo)Model).Exception : (Model as Exception)) ?? context.Server.GetLastError();
}
@(ex.Message)