MVC 5 HttpErrors + Controller / Action

时间:2013-11-21 12:35:41

标签: asp.net-mvc http-status-code-404 asp.net-mvc-5

如何使用httpErrors 更改控制器/操作的错误路径?

我有这段代码:

<httpErrors errorMode="Custom">
  <remove statusCode="404"/>
  <error responseMode="ExecuteURL" statusCode="404" path="Error/HttpRequestError"/>
</httpErrors>

但它不起作用。空页面显示和未输入的操作。

我做错了什么?

P.S。我知道另一种解决自定义页面错误的方法。但我想尝试使用它。

谢谢!

3 个答案:

答案 0 :(得分:11)

我解决了一个问题。这个web.config代码可以工作:

<httpErrors errorMode="Custom" existingResponse="Replace">
  <remove statusCode="404"/>
  <error statusCode="404" responseMode="ExecuteURL" path="/Error/404"/>
</httpErrors>

现在输入ErrorsController / NotFound动作(用路由属性ActionName标记为404)。

答案 1 :(得分:1)

为什么不简单地重定向404的网址

<customErrors mode="RemoteOnly"  defaultRedirect="~/error">
    <error statusCode="404" redirect="~/Error/HttpRequestError" />    
</customErrors

答案 2 :(得分:1)

如果Sergey Shoshin的回答不起作用。

<httpErrors errorMode="Custom" existingResponse="Replace">
      <remove statusCode="404"/>
      <error statusCode="404" responseMode="ExecuteURL" path="[optional virtual directories...]/Error/404"/>
</httpErrors>