2008-12-28 102 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%>

相關問題