2

我有一个 Partial 视图,我想在 2 个不同的 Stronly-Typed 视图上使用它。传递的数据只是一个简单的 ID 整数,但是当我尝试在 View #2 上呈现数据时,我得到一个

传入字典的模型项是 type CMESurvey.ViewModels.SurveyParticipantViewModel,但是这个字典需要一个 type 的模型项CMESurvey.Models.SurveyProgramModel

这是错误的部分视图代码:

@Html.Partial("SurveyProgramSubNav", new {ProgramId = Model.ProgramId})

此代码的强类型与我的部分视图强类型不同:

@model CMESurvey.Models.SurveyProgramModel 

对于局部视图,并且:

@model CMESurvey.ViewModels.SurveyParticipantViewModel 

对于我遇到问题的观点。任何帮助表示赞赏。

4

2 回答 2

2

我想你想要:

@Html.Partial("SurveyProgramSubNav", 
   new SurveyProgramModel {ProgramId = Model.ProgramId})

指定模型的强类型而不是自动类型。

于 2012-07-09T18:50:08.723 回答
0

使用 PartialViews 时,最好避免调用模型,因为不同的视图(大多数情况下)会有不同的模型。我建议您将部分视图更改为Model.ProgramIdViewBag.ProgramId然后在操作中填充此属性,例如ViewBag.ProgramId = whatever;

为了使事情变得更容易,您可以使用控制器继承并将这个集合放在您的基本控制器中。

问候

于 2012-07-09T18:48:38.997 回答