【发布时间】:2011-12-21 02:52:25
【问题描述】:
我在将多个模型传递给单个视图时遇到问题,在阅读了其他帖子后,我收集到我需要创建一个单独的类并实例化该类并将该实例化的类返回到视图。但是,我该怎么做?
我想使用 Entity Framework 和 Linq 来进行查询。如果可以提供示例代码供我学习...
【问题讨论】:
标签: asp.net-mvc linq entity-framework-4.1
我在将多个模型传递给单个视图时遇到问题,在阅读了其他帖子后,我收集到我需要创建一个单独的类并实例化该类并将该实例化的类返回到视图。但是,我该怎么做?
我想使用 Entity Framework 和 Linq 来进行查询。如果可以提供示例代码供我学习...
【问题讨论】:
标签: asp.net-mvc linq entity-framework-4.1
使用
public ActionResult Index()
{
SomeClass1 object1 = new SomeClass1();
SomeClass2 object2 = new SomeClass2();
ViewData["someName1"]=object1;
ViewData["someName2"]=object2;
return View(ViewData);
}
在“查看”页面中,您可以通过以下方式访问它们:
<% SomeClass1 object1 = ViewData["someName1"] as SomeClass1; %>
<% SomeClass1 object2 = ViewData["someName2"] as SomeClass2; %>
【讨论】:
您可以使用动态的快速而肮脏的方式:
dynamic viewdata = new ExpandoObject();
viewdata.object1 = Model1;
viewdata.object2 = Model2;
return View(viewdata);
或者你可以正确地做它并创建一个视图模型。
class ViewModel1 {
public MyModel Model1 { get; set; }
public MyOtherModel Model2 { get; set; }
}
ViewModel1 viewdata = new ViewModel1();
viewdata.Model1 = Model1;
viewdata.Model2 = Model2;
return View(viewdata);
【讨论】:
创建视图模型。视图模型是通常由其他模型组成且不绑定到您的数据模型的模型。 MvcMusic 演示有一个很好的使用视图模型的例子。
虽然ViewData 可以工作,但它不是类型安全的,基本上取决于魔术字符串,所以我会避免它。
【讨论】: