2012-04-27 83 views
1

我想在一個視圖中使用兩個模型。這裏是我的代碼:兩種型號或一種視圖?

public class Users { 
    public int id { get; set; } 
    public string adSoyad { get; set; } 
    public string email { get; set; } 
    public int puan { get; set; } 
} 
public class admin { 
    public int id { get; set; } 
    public string name { get; set; } 
} 

public class mainmodel { 
    public Users Users { get; set; } 
    public admin admin { get; set; } 
} 

我可以用它來刪除,編輯和創建視圖。但我在索引視圖中遇到錯誤:

@model IEnumerable<donemProje.Models.mainmodel> 

我該怎麼辦?

Edit-- 我嘗試這在索引視圖

@model donemProje.Models.mainmodel 


@foreach (var item in Model.Users) 
{ 
    <tr> 
     <td> 
      @Html.DisplayFor(modelItem =>item.adSoyad) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => item.email) 

,並得到這個錯誤

編譯器錯誤信息:CS1579:foreach語句無法在類型 'donemProje.Models.Users' 的變量操作因爲 'donemProje.Models.Users' 不包含 '的GetEnumerator'

INT一個公共定義此行

號線34:@foreach (var item in Model.Users)

+0

用戶類有可以有多個記錄(其中包括其在視圖中使用的其他類的類)?和管理類也可以有多個或只有一個記錄? – Saad 2012-04-27 04:31:58

+1

是什麼錯誤? – 2012-04-27 04:34:03

回答

0

您的視圖模型應該是@model mainmodel

0

@model IEnumrable或試圖@model IeEnumrable<mainmodel>?如果你嘗試@model IEnumrable<mainmodel>比mainmodel有用戶和管理員的名單在裏面。但我的理解來自你的問題,我認爲下面的話會幫助你。

你可以試試@model mainmodel,你可以使用foreach循環遍歷mainmodel。

foreach(var user in Model.Users) 
{ 
    // you code goes here.. 
} 

和管理員的相同的事情,如果要通過管理迭代。否則只是使用@Model.Admin.id

0

如果你想在一個視圖中使用兩種模式,你應該使用的ViewModels