切中要害:我將如何映射到Dictionary<String, String>
一個視圖模型? ViewModel包含與Dictionary鍵名稱相同的屬性。ASP.NET MVC 2填充視圖模型數據
爲了提供更多的信息,程序讀取數據庫記錄並返回所有值的一個Dictionary<String, String>
記錄。我只想將20-30個這些字段顯示給用戶,而其他處理則在其他字段的幕後進行。我製作了ViewModel並強制輸入了視圖。我可以手動將屬性從Dictionary<String, String>
分配給ViewModel屬性,但是這看起來像是填充ViewModel的錯誤方法。
我然後使用反射來填充字段試過,但同樣這似乎是錯誤的方式去了解這一點。
foreach (PropertyInfo propertyInfo in this.GetType().GetProperties())
{
if (propertyInfo.PropertyType.Name.Equals("String"))
{
if (myClass.FieldValues.Keys.Contains(propertyInfo.Name))
{
propertyInfo.SetValue(this, myClass.FieldValues[propertyInfo.Name], null);
}
}
}
如此反覆,是有辦法,我可以使用Dictionary<String, String>
其中關鍵值是相同的名稱作爲視圖模型屬性值填充我的ViewModel?
的ViewPage是好的,但的ViewPage 會導致訪問錯誤,因爲動態變量中的所有屬性都是內部的,無法在視圖中訪問。 –
2010-07-09 06:08:46
在這兩種情況下,視圖都繼承自ViewPage,這應該很好。該視圖將始終與強類型模型一起使用,它是調用動態對象的屬性的實現,而不是視圖。 –
2010-07-09 06:45:08
用於詳細說明ExpandoObject。我不能說這是否是最合適的,但我很高興它在示例中使用,以便更多人瞭解.NET 4.0的功能。 – 2010-07-09 11:00:13