2017-10-22 246 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局部視圖。我不會在沒有花費數小時的時間在論壇上發表類似問題的問題,這些問題我已經花了數天的時間。 –

相關問題