如何处理局部视图中的模型
Posted
技术标签:
【中文标题】如何处理局部视图中的模型【英文标题】:How to handle models in partial views 【发布时间】:2015-06-24 20:13:45 【问题描述】:在我的父视图中,我在视图顶部声明模型:
@model GEDCPatientPortal.Models.AccountProfileViewModel
然后在那个视图中,我导入一个局部视图:
@html.Partial("~/Views/Shared/_SelectPatientScheduleAppointment.cshtml")
我遇到的问题是这个局部视图声明了它自己的模型,因为局部视图中有一个下拉列表,我希望它是强类型的...
@model GEDCPatientPortal.Models.PatientPortalViewModels
....
@Html.DropDownListFor(model => Model.SelectPatient)
我明白为什么会出现错误,但我不知道如何解决它。
错误:传入字典的模型项是类型 'GEDCPatientPortal.Models.AccountProfileViewModel',但这 字典需要类型的模型项 'GEDCPatientPortal.Models.PatientPortalViewModels'
【问题讨论】:
【参考方案1】:使用
@Html.Partial("~/Views/Controller/View.cshtml", model)
将所需的模型传递到您的局部视图中。
您可以使局部视图的模型成为主视图模型的一部分(例如属性AccountProfileViewModel.PatientPortal
)并将其传递给局部视图。
【讨论】:
好的,那么,在局部视图中,如果我不声明模型,如何在执行 @Html.DropDownListFor(model => Model.选择患者...) 你必须在局部视图中声明模型,并且它必须匹配通过@Html.Partial(..., model)传递的模型的类型 好的好的,现在我明白了。所以现在我只是在努力使用@Html.Partial("~/Views/Controller/View.cshtml", model) 的语法。确切地说,我在父视图中为“模型”放置了什么? 知道了。 @Html.Partial("~/Views/Shared/_SelectPatientScheduleAppointment.cshtml", new GEDCPatientPortal.Models.PatientPortalViewModels())以上是关于如何处理局部视图中的模型的主要内容,如果未能解决你的问题,请参考以下文章
如何处理 Clickhouse 的 AggregatingMergeTree 物化视图中的嵌套字段?