2012-11-21 115 views
1

我有一個視圖模型。該視圖包含一個@ Html.DropDownList,其值位於模型中。我怎樣才能讓我的觀點將這兩種模式用於該計劃的不同部分?MVC3查看多個模型

例如,我有

@model IEnumerable<projectname.mymodel> 
@{ 
    ViewBag.Title = "my title" 
} 
<!--This should use a different model--> 
<p>@Html.DropDownList(m =>m.name), new set(Model.list, "value", "key")) 

如果我有MODEL1和MODEL2(連接到數據庫) - 所有存儲在模型文件夾中;和一個大模型類,就像這樣

public class MyViewModel { 
    public model1 var1 { get; set; } 
    public IEnumerable<projectname.Model.model2> var2 { get; set; } 
} 

我這樣稱呼這種模式在我看來:

@model ProjectName.Models.Models

如何在一個參考項model1還是model2?

回答

3

剛剛通過了一類新的模式,您認爲它包含了所有你需要的數據:

public class MyViewModel { 
    public SelectList list { get; set; } 
    public IEnumerable<projectname.mymodel> Items { get; set; } 
} 

另一種方法是通過在Viewbag名單:

Viewbag.list = new SelectList() ... 
+0

視圖模型是一個更好的解決方案。不要使用Viewbag傳遞模型。 – Tyrsius

+0

請參閱編輯 – jpo

+0

@jpo您必須在您的視圖中像這樣引用模型:'@model MyViewModel'。然後你可以使用'Model.var1'和'Model.var2'來訪問這兩個屬性。 – Jan