将多个模型传递给视图
问题描述:
我在将多个模型传递给单个视图时遇到问题,在阅读了其他文章之后,我需要创建一个单独的类并实例化该类并将该实例化的类返回给风景。但是,我将如何做到这一点?将多个模型传递给视图
我想用Entity Framework和Linq做查询。如果你能提供给我学习的示例代码...
答
你既可以做到快速,肮脏的方式,使用动态:
dynamic viewdata = new ExpandoObject();
viewdata.object1 = Model1;
viewdata.object2 = Model2;
return View(viewdata);
或者你可以做到这一点,并创建一个viewmodel。
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);
+0
用于偏好viewModel的+1 –
答
使用
public ActionResult Index()
{
SomeClass1 object1 = new SomeClass1();
SomeClass2 object2 = new SomeClass2();
ViewData["someName1"]=object1;
ViewData["someName2"]=object2;
return View(ViewData);
}
在View页面,您可以访问它们为:
<% SomeClass1 object1 = ViewData["someName1"] as SomeClass1; %>
<% SomeClass1 object2 = ViewData["someName2"] as SomeClass2; %>
答
创建一个视图模型。视图模型是一种通常由其他模型组成的模型,并且不绑定到您的数据模型。 MvcMusic演示有一个使用视图模型的好例子。
虽然ViewData
将工作其不是类型安全,基本上取决于魔术弦,所以我会避免它。
[推荐本] [1] [1]:http://*.com/questions/4764011/multiple-models-in-a-view –