我有一个部分视图,我想在2个不同的Stronly-Typed视图上使用。传递的数据只是一个简单的ID整数,但是当我尝试在View#2上渲染数据时,我得到了一个
传递到字典中的模型项的类型为
CMESurvey.ViewModels.SurveyParticipantViewModel
,但此字典需要类型为CMESurvey.Models.SurveyProgramModel
的模型项。
以下是错误的部分视图代码:
@Html.Partial("SurveyProgramSubNav", new {ProgramId = Model.ProgramId})
此代码的强度与我的部分视图强类型不同:
@model CMESurvey.Models.SurveyProgramModel
用于局部视图,并且:
@model CMESurvey.ViewModels.SurveyParticipantViewModel
对于我遇到麻烦的观点。任何帮助表示赞赏。
答案 0 :(得分:2)
我想你想要:
@Html.Partial("SurveyProgramSubNav",
new SurveyProgramModel {ProgramId = Model.ProgramId})
指定模型的强类型而不是自动类型。
答案 1 :(得分:0)
使用PartialViews时,最好避免调用模型,因为不同的视图会有不同的模型(大多数情况下)。
我建议您在部分视图中将Model.ProgramId
更改为ViewBag.ProgramId
,并在操作中填充此属性,如ViewBag.ProgramId = whatever;
为了简化操作,您可以使用Controller继承并将此设置放在基本控制器上。
此致