我在我的MVC应用程序中设置了ELMAH,如果抛出异常,我想显示一个友好的scren。 但是我还是得到了YSOD。 所以在我的web.config中我有 (我也试过其他模式没有成功)。 我的错误控制器了 命名空间ITOF.Controllers { 使用System.Net; 使用System.Web.Mvc;
public class ErrorController : Controller
{
[AcceptVerbs(HttpVerbs.Get)]
public ViewResult Unknown()
{
Response.StatusCode = (int)HttpStatusCode.InternalServerError;
return View("Unknown");
}
[AcceptVerbs(HttpVerbs.Get)]
public ViewResult NotFound(string path)
{
Response.StatusCode = (int)HttpStatusCode.NotFound;
return View("NotFound", path);
}
}
}
当mode =“On”时,会调用这些方法
但是我得到一个运行时错误YSOD告诉我更改我的web.config customError mode =“RemoteOnly”
也许我的观点中有错误?
他们在这里;
Unknown.cshtml;
@{
ViewBag.Title = "Error";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Sorry, an error occurred while processing your request.</h2>
NotFound.cshtml;
@{
ViewBag.Title = "Not Found";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Lost?</h2>
<p>Sorry - your request doesn't exist or was deleted.</p>
答案 0 :(得分:3)
在您的NotFound
行动中,您应该返回:
return View("NotFound", (object)path);
注意我是如何将第二个参数转换为object以便使用方法的正确重载。否则,您将调用重载,其中第二个参数表示母版页名称。