2017-10-22 243 views
-2

我试图在创建视图上创建项目列表。将部分视图作为IEnumerable传递给单个模型

我使用VS2017,EF6,MVC5,代码第一次。

我有一个名为_Patients

的局部视图
@model IEnumerable<ContosoUniversity.Models.Patient> 
<table class="table>"> 
    <thead> 
     .... 
    </thead> 
    <tbody> 
     @foreach (var item in Model) 
     { 
      <tr> 
       <td>@Html.DisplayFor(modelItem => item.PatientFirstName)</td> 
      </tr> 
     } 
    </tbody> 
</table> 

我的主要观点是Create.cshtml

,我加入局部视图

@Html.Partial("_Patients") 

我的主视图使用单个项目模型

@model ContosoUniversity.Models.Patient 

当我将主视图模型更改为IEnumerable<ContosoUniversity.Models.Patient>

列表正确显示,但表单字段给我错误,因为它的类型错误。

我想只是通过局部视图为IEnumerable,这可能吗?

+0

不太清楚你想在这里做的 - 你想从主模型通过Patient'的'的单个实例的部分(为什么) ? –

+0

​​@ Html.DisplayFor(modelItem => item.PatientFirstName缺少一个圆括号?在您的问题中复制/粘贴格式问题? – TamusJRoyce

+0

我的问题不清楚?我需要在创建视图中填充患者列表。我想我在第一篇文章中非常清楚,当我说“我正在创建一个创建视图中的项目列表”。为什么你会认为我试图将一个Patient实例从主体传递给部分? –

回答

0

尝试加载部分在以下几个方面

@Html.Partial('_Patients', new List<ContosoUniversity.Models.Patient>()) 
+0

相同的错误:传递到词典中的模型项的类型为“System.Collections.Generic.List'1 [ContosoUniversity.Models.Patient]”,但是这需要字典类型的模型项“ContosoUniversity.Models.Patient”。 –

+0

看到这个帖子https://stackoverflow.com/questions/27378288/but-this-dictionary-requires-a-model-item-of-type-system-collections-generic-ie –

+0

我已经试过了已经,只是为了好玩,我再次将我的部分视图代码更改为@ {Html.RenderPartial(“_ Patients”,new List {new ContosoUniversity.Models.Patient()}); }这与你发布的链接完全不一样,因为在他们的代码中他们已经在主视图中调用了IEnumerable,而我并不是这样。我已经说过我正在使用单个对象视图,我需要使用IEnumerable局部视图。我不会在没有花费数小时的时间在论坛上发表类似问题的问题,这些问题我已经花了数天的时间。 –

相关问题