好的,所以我一直在看一些MVC视频并阅读一些内容。 我是整个MVC模式的新手,直到现在已经很高兴地融入了网络表单世界!
与许多演示一样,这一切看起来都很棒,而且我确信随着时间的推移,我会有很多我不理解的东西,但在第一时间......
我可以看到你可以有一个强类型视图,它从控制器获取数据。如果我想要来自不同对象类型的视图中的数据,会发生什么?假设我想显示一个汽车网格和一个人的网格,无论如何都不相关??
THX 史蒂夫
答案 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>
{
}