【发布时间】:2012-02-10 03:35:46
【问题描述】:
我从应用程序中抛出 404 错误。
404 错误的页面位于 /ErrorPages/Error_404.cshtml
在这个文件中,我只有 HTML 代码,它工作正常。
但是如果我添加一些剃须刀代码,它会在浏览器中引发配置错误。
我添加例如 layout 或一些 @Html.ActionLink(...
这是错误:
运行时错误
描述:服务器上出现应用程序错误。目前的 此应用程序的自定义错误设置阻止了 被查看的应用程序错误。
详细信息:启用此特定错误消息的详细信息 可在本地服务器计算机上查看,请创建一个 位于根目录中的“web.config”配置文件中的标记 当前 Web 应用程序的目录。这个标签 然后应该将其“模式”属性设置为“RemoteOnly”。启用 要在远程机器上查看的详细信息,请将“模式”设置为 “关”。
这就是我产生 404 的方式:
public ActionResult Search(string searchTerm)
{
if (city == null)
{
throw new HttpException(404, "Some description");
}
else
{
return RedirectToAction("Index", "Home", new
{...
}
}
当错误页面中没有剃须刀代码时,它可以工作,如果没有,我会从上面收到消息。
当我在 web config 'mode=Off' 中设置时,我收到错误消息:
描述:HTTP 404。您正在寻找的资源(或其之一 依赖项)可能已被删除,名称已更改,或者是 暂时不可用。请查看以下 URL 并制作 确保拼写正确。
请求的 URL:/CityPage/Navigation/Search
这是来自网络配置的值
<customErrors mode="Off">
<error statusCode="404" redirect="\ErrorPages\Error_cp404.cshtml" />
</customErrors>
【问题讨论】:
-
在 web.config 中将自定义错误设置为 Off 并告诉我们实际的错误消息。
-
@Judo 如果他关闭了自定义错误,系统将不会呈现他的错误消息页面,而是显示默认的异常堆栈。 1110,您应该调试该页面并向我们显示实际错误
-
我根据您的 cmets 更新了我的问题。
标签: asp.net-mvc asp.net-mvc-3 razor http-status-code-404