切中要害:我将如何映射到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