如何使用httpErrors 更改控制器/操作的错误路径?
我有这段代码:
<httpErrors errorMode="Custom">
<remove statusCode="404"/>
<error responseMode="ExecuteURL" statusCode="404" path="Error/HttpRequestError"/>
</httpErrors>
但它不起作用。空页面显示和未输入的操作。
我做错了什么?
P.S。我知道另一种解决自定义页面错误的方法。但我想尝试使用它。
谢谢!
答案 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>