两种不同数据结构的ASP.NET MVC3 ForEach

时间:2011-06-02 18:57:48

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

我理解如何使用ASP.NET MVC中的页面继承处理单个数据结构上的foreach循环,但我想在同一页面上显示两种不同类型数据的内容。如何才能完成这个,因为页面只接受一个继承类?

4 个答案:

答案 0 :(得分:3)

我知道这两个选择:

  1. 创建一个包含两个子类(视图模型)的类。
  2. 使用ViewData或ViewBag将一个或多个实例传递给视图。

答案 1 :(得分:3)

正如我前面的人指出的那样,如果我们理解正确的话,正确的答案是composition。我们的想法是给页面一个模型,其中包含两个其他模型,例如

public class Car {
    public Motor Engine { get; set; }
    public List<Seat> Seats { get; set; }
}

这里的想法是,你的班级现在来自ViewPage<Car>,它允许你这样做:

坐着behing&lt;%= Model.Engine.ToString()%&gt;引擎,有:

<ul>
<% foreach(var seat in Model.Seats) { %>
       <li><%= seat.ToString() %>
<% } %>
</ul>

希望这能回答你的问题。

答案 2 :(得分:1)

组合物

public class CompositeViewModel
{
    public ViewModelClass1 ViewModel1 { get; set; }
    public ViewModelClass2 ViewModel2 { get; set; }
}

答案 3 :(得分:0)

创建一个视图模型类。

class ViewModel 
{
    MyClass1 Object1 { get; set; }
    MyClass2 Object2 { get; set; }
}