如何处理局部视图中的模型

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())

以上是关于如何处理局部视图中的模型的主要内容,如果未能解决你的问题,请参考以下文章

如何处理淘汰视图模型中的多对多关系

如何处理 iOS 应用程序中的模型类

如何处理 Clickhouse 的 AggregatingMergeTree 物化视图中的嵌套字段?

如何处理自定义 UITableViewCell XIB 中的两个视图?

如何处理 Xcode 故事板中的错位视图警告?

如何处理mongodb中的多对多关系