【问题标题】: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'

【问题讨论】:

    标签: asp.net-mvc model partial-views


    【解决方案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())
    猜你喜欢
    • 1970-01-01
    • 2016-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多