2011-03-05 39 views
1

我相信ViewData.Eval不適用於集合對象。ViewData.Eval集合

以下內容返回null。

<%=ViewData.Eval("Names[0].FirstName")%> 
<%=ViewData.Eval("Names[1].FirstName")%> 

我的應用要求模型使用eval來訪問,而不是強類型的方法,如Model.Names [0] .FirstName等

我怎樣才能做到這一點?

MVC的版本是1.

謝謝。

+1

對於不使用強類型方法,您有一個奇怪的應用程序要求。 – 2011-03-05 11:40:43

+0

基本上,它是一個動態表單應用程序,其中的字段名稱來自數據庫 – 2011-03-05 12:13:42

回答

1

這是我如何實現它。

我首先將單個數組項分配給ViewData,然後使用ViewData的Eval方法。

<% 
ViewData["SingleNameObject"] = Names[i]; 
%> 

<%=ViewData.Eval("SingleNameObject.FirstName")%> 

謝謝。

+0

我修復它使用ViewData [「mylist [0]」] = Model.mylist [0];' – user960567 2014-06-09 14:24:47

2

我在爲呈現控件創建自定義Html幫助器方法時看到了這個問題。我希望能夠在給定表達式的情況下獲得視圖數據模型值。標準的ViewData.Eval方法適用於屬性,但對於更復雜的情況根本不起作用。我結束了根據下面的示例使用DataBinder類:

var value = DataBinder.Eval(ViewData.Model, "Names[0].FirstName") 

這似乎解決了我的問題。