gpt4 book ai didi

asp.net-mvc-3 - 其他错误找到我的Error.cshtml,为什么404错误找不到Error.cshtml?

转载 作者:行者123 更新时间:2023-12-02 16:06:05 27 4
gpt4 key购买 nike

我第一次同时处理 ASP.NET、MVC 3、Web 开发。请耐心听我说,因为我知道这个主题已经从不同角度进行了大量讨论。我仍然没有找到我的具体问题的答案:为什么我的应用程序在出现 404 错误时找不到我的 Error.cshtml 文件,而当它发现它与其他错误一起正常时?

(环境:Win 7 64位、IIS7、SQL 2008 Express、VS2010、ASP.NET 4、MVC3、EF v4)

我有一个 Controller WorkerController.cs,它可以正确地从数据库读取和写入。如果我更改数据库名称而不更新 DbContext,则会出现错误。当我更改 web.config 以始终显示自定义错误时,显示/Views/Shared/Error.cshtml 文件。

没有有 FooController.cs 文件。如果我转到/Foo,我会收到 404 错误,正如预期的那样。它告诉我它找不到资源/Foo。

当我设置 customErrors mode="On"并向/Foo 发出 http 请求时,收到 404 错误,指出找不到/Error.cshtml。

我正在搜索并阅读讨论指定 Controller 处理错误的各种方法的帖子,但我真的想知道我错过了什么。为什么它会找到/Error.cshtml 的其他错误,但找不到 404 错误?

最佳答案

除了设置 customErrors="On" 之外,您是否为 404 错误定义了特定的重定向?

如果您有一个 ErrorController 设置您的 web.config,例如:

<customErrors mode="On" defaultRedirect="/error/Problem">
<error statusCode="404" redirect="error/FileNotFound"/>
</customErrors>

或者您更喜欢静态 html 页面来显示错误:

<customErrors mode="On" defaultRedirect="Problem.html">
<error statusCode="404" redirect="FileNotFound.html"/>
</customErrors>

您可能想查看另一个问题以获取更多信息: ASP.NET MVC HandleError .

不过,为了改进 MVC 中的错误处理,您还可以看看 ELMAH(错误记录模块和处理程序):

关于asp.net-mvc-3 - 其他错误找到我的Error.cshtml,为什么404错误找不到Error.cshtml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5240066/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com