Asp.net mvc 3 对ASP.NET MVC 3全局错误页使用不同的ViewModel

Asp.net mvc 3 对ASP.NET MVC 3全局错误页使用不同的ViewModel,asp.net-mvc-3,Asp.net Mvc 3,我正在使用一个全局过滤器来处理ASP.NET MVC 3(带Razor视图)中的错误。但是,我的共享/_布局视图需要一个视图模型,我称之为PageViewModel 当我遇到错误时,会编译共享/错误视图-但是,由于它引用的是布局文件,因此出现以下异常: 异常消息:传入字典的模型项为 键入“System.Web.Mvc.HandleErrorInfo”,但此字典需要 “ViewModels.PageViewModel”类型的模型项 你知道怎么解决这个问题吗 以下是错误视图: @model Syst

我正在使用一个全局过滤器来处理ASP.NET MVC 3(带Razor视图)中的错误。但是,我的共享/_布局视图需要一个视图模型,我称之为PageViewModel

当我遇到错误时,会编译共享/错误视图-但是,由于它引用的是布局文件,因此出现以下异常:

异常消息:传入字典的模型项为 键入“System.Web.Mvc.HandleErrorInfo”,但此字典需要 “ViewModels.PageViewModel”类型的模型项

你知道怎么解决这个问题吗

以下是错误视图:

@model System.Web.Mvc.HandleErrorInfo

@{
    ViewBag.Title = "Error";
}

<h2>Sorry, an error occurred while processing your request.</h2>
@model System.Web.Mvc.HandleErrorInfo
@{
ViewBag.Title=“错误”;
}
很抱歉,处理您的请求时出错。

您不能将错误放入ViewBag中,然后将视图发送到普通的PageViewModel吗


这是MVC中全局异常处理的一个很好的例子。

您是否在错误视图中使用HandleErrorInfo模型?否,整个视图都在上面发布。如果您没有使用HandleErrorInfo中的任何值,错误视图是否需要强类型?或者,布局是否需要强类型?这不会给其他强类型视图带来同样的问题吗?强类型布局是必需的,这样我就可以将站点设置等放到标准模板中。我想我可以通过使用子操作来做不同的事情。我不是专门调用视图-这是在ASP.NET的某个地方发生的-你知道如何覆盖它以便我可以更改发送的视图模型吗?下面是MVC中全局异常处理的一个好例子。您可能应该沿着这条路径专门调用错误视图。我支持达拉斯的观点,不过强类型布局可能会给你带来其他问题。