2011-05-09 108 views
2

我想將兩個模型(稱爲ModelA和ModelB類)綁定到view.ascx頁面。這些類中的每一個都有List對象,我想在視圖中訪問它們。我知道我們可以通過將強類型模型關聯到其中一個類來訪問一個類。我如何綁定其他課程?綁定模型以查看

回答

2

只需創建一個視圖模型 - 包含需要(在這種情況下MODELA和ModelB)所有型號的類。然後將視圖綁定到此ViewModel並在您的視圖中像model.ModelA.Property那樣訪問它。

編輯:你寫了ModelA和modelB都有他們的集合?所以,你創造的東西,如:

public class ABViewModel 
{ 
    public ModelA A {get;set;} 
    public ModelB B {get;set;} 
} 

然後實例它像控制器:

ABViewModel abvm = new ABViewModel(); 
abvm.A = new ModelA(); 
abvm.B = new ModelB(); 

,並返回你的觀點(強類型到ABViewModel)。

return View(abvm); 

和訪問考慮中的屬性:

foreach (var item in model.A.CollectionProperty) // something like this 

或者

model.B.Property // something like this 

IE瀏覽器。您可以同時訪問.. ModelA和ModelB,因爲它們現在是另一個對象的屬性 - 您的新模型。

注:我不確定,如果您在mvc2中使用model.Model.來訪問您的模型。它是mvc3中的model

2

你寫第三類包裝這兩個名單:

public class MyViewModel 
{ 
    public IList<Foo> List1 { get; set; } 
    public IList<Bar> List2 { get; set; } 
} 

,然後你使用這個類傳遞給視圖的視圖模型。那麼該視圖中,您可以訪問這兩個列表:

<% foreach(var item in Model.List1) { %> 
    ... 
<% } %> 

<% foreach(var item in Model.List2) { %> 
    ... 
<% } %>