可以执行以下操作:
View(new {Object A, Object B})
或者应该在新类型中显式声明对象A和对象B吗?
感谢。
答案 0 :(得分:4)
是的,这样做很好。要获取值,可以使用ViewData.Eval(“PropertyName”),现有的Html帮助程序可以正常使用它们。您无法做的唯一事情是使用<%= ViewData.Model.PropertyName%>
获取对属性的强类型访问权限答案 1 :(得分:2)
尽管匿名类型对于许多MVC目的而言是通用的,但在这种情况下,我会使用常规命名类,或者推送字典(或内置字典)。否则,您将不得不使用反射/ TypeDescriptor
来重新获取值。
答案 2 :(得分:2)
通过传递匿名类型,您无法拥有强类型视图。您还需要在单元测试中使用反射。
答案 3 :(得分:1)
我相信你至少想给他们起名字:
var model = new
{
ObjectA = new A(),
ObjectB = new B(),
};
view(model);