绑定模型以查看

时间:2011-05-09 14:02:34

标签: asp.net-mvc asp.net-mvc-2

我想将两个模型(比如ModelA和ModelB类)绑定到view.ascx页面。并且每个类都有我想要在视图中访问的List对象。我知道我们可以通过将强类型模型与其中一个类相关联来访问一个类。我如何绑定其他类?

2 个答案:

答案 0 :(得分: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) { %>
    ...
<% } %>

答案 1 :(得分:2)

只需创建一个 ViewModel - 包含您需要的所有模型的类(在本例中为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