MVC:无法查看我的错误页面

时间:2012-10-02 09:58:17

标签: asp.net-mvc

我在我的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>

1 个答案:

答案 0 :(得分:3)

在您的NotFound行动中,您应该返回:

return View("NotFound", (object)path);

注意我是如何将第二个参数转换为object以便使用方法的正确重载。否则,您将调用重载,其中第二个参数表示母版页名称。