6

我在 ASP.NET MVC 3 应用程序中设置了自定义/http 错误,这些错误将显示在错误中。我Web.ConfighttpErrors部分如下所示:

    <httpErrors errorMode="Custom" existingResponse="Replace">
        <remove statusCode="400" />
        <remove statusCode="403" />
        <remove statusCode="404" />
        <remove statusCode="408" />
        <remove statusCode="500" />
        <remove statusCode="503" />
        <error statusCode="400" responseMode="ExecuteURL" path="/Error/BadRequest" />
        <error statusCode="403" responseMode="ExecuteURL" path="/Error/Forbidden" />
        <error statusCode="404" responseMode="ExecuteURL" path="/Error/NotFound" />
        <error statusCode="408" responseMode="ExecuteURL" path="/Error/Timeout" />
        <error statusCode="500" responseMode="ExecuteURL" path="/Error/InternalServerError" />
        <error statusCode="503" responseMode="ExecuteURL" path="/Error/ServiceUnavailable" />
    </httpErrors>

我没有设置customerErrors设置,因为这不适用于 MVC 和 IIS 7.5。

当代码中发生异常时,一切正常。

但是,当视图中引发异常时 - 它会尝试显示~/Views/Shared/Error.cshtml我没有的默认值。

可能引发错误的视图可能是这样的:

@Html.Partial("TemplateSection", Model.PreContent)

并且想象PreContent为空,并且TemplateSection通过执行以下操作显示值时视图将失败:@Model.Name

4

1 回答 1

1

I read this article and have had no problems since dropping my resulting code into production 48 hours ago. Give it a whirl.

于 2012-06-08T02:16:46.577 回答