2008-12-28 80 views
1

是否确定要做到以下几点:将匿名类型传递给MVC ViewData.Model是否安全?

View(new {Object A, Object B}) 

还是应该对象A和对象B在一个新的类型显式声明?

谢谢。

+0

获得对属性的强类型访问权限http://stackoverflow.com/questions/223713/的重复项? – 2008-12-28 21:36:20

+0

是的,我想它是相似的。 – zsharp 2008-12-28 22:11:02

回答

2

尽管匿名类型对于很多MVC用途而言是通用的,但在这种情况下,我会使用常规的命名类,或者在推送字典(或内置的类)时使用。否则,您将不得不使用反射/ TypeDescriptor重新获取数值。

2

通过传递匿名类型,您不能拥有强类型视图。您还需要在单元测试中使用反射。

1

我相信你想至少给他们的名字:

var model = new 
{ 
    ObjectA = new A(), 
    ObjectB = new B(), 
}; 


view(model); 
4

是的,它的罚款这样做。要获取这些值,可以使用ViewData.Eval(“PropertyName”),现有的Html帮助器可以正常工作。你唯一不能做的就是使用<%= ViewData.Model.PropertyName%>

相关问题