MVC的新手|来自不同来源的视图中的数据

时间:2008-11-25 13:46:27

标签: asp.net-mvc model-view-controller

好的,所以我一直在看一些MVC视频并阅读一些内容。 我是整个MVC模式的新手,直到现在已经很高兴地融入了网络表单世界!

与许多演示一样,这一切看起来都很棒,而且我确信随着时间的推移,我会有很多我不理解的东西,但在第一时间......

我可以看到你可以有一个强类型视图,它从控制器获取数据。如果我想要来自不同对象类型的视图中的数据,会发生什么?假设我想显示一个汽车网格和一个人的网格,无论如何都不相关??

THX 史蒂夫

4 个答案:

答案 0 :(得分:4)

使用两个属性(如

)设置强类型的ViewData类
public class MyViewData 
{ 
  public IEnumerable<Car> Cars { get; set; }
  public IEnumerable<People> People { get; set; }
}

然后将它们填入控制器, 对不起,副本。在良好的MVC精神中,尝试尽可能使用接口来使代码更通用

答案 1 :(得分:2)

不是人为地将模型分组在一起,而是可以将它们分开(逻辑上和物理上),然后在视图中将各个部分组合在一起。

查看这篇文章,了解[link text] [1]的一个很好的解释。

[1]:http://blog.codeville.net/2008/10/14/partial-requests-in-aspnet-mvc/部分请求

答案 2 :(得分:0)

您既可以在ViewData哈希表中传递两个对象,也可以创建一个MyViewViewModel,添加两个属性,并从控制器中设置它们。

答案 3 :(得分:0)

我认为在这种情况下最好的做法是在Models文件夹中创建一个类来保存这两种类型。

示例:

public class CarsPeopleModel
    {
        public List<Car> Cars { get; set; }
        public List<Person> People { get; set; }
    }

然后你的观点是:

public partial class Index : ViewPage<MvcApplication1.Models.CarsPeopleModel>
    {
    }