我试图循环传递给模型对象中的视图的数据。我想列出每个模型属性的属性名称和属性值,即使它们为空。我一直在这里待了几个小时,并尝试使用Google搜索,但无法获得任何可行的示例。循环模型数据并列出它
我得到这个,列出所有当前对象的属性,但不能获取值:
@model List<object>
@foreach (var obj in Model)
{
var properties = obj.GetType().GetProperties();
foreach (var property in properties)
{
string name = null;
var value = ""
try
{
name = property.Name;
value = property.GetType().GetProperty(property.Name).GetValue(property, null).ToString();
}
catch (Exception e)
{
<p>@e</p>
}
finally
{
<p>@name - @value</p>
}
}
而控制器代码:
RootobjectPlayerData obj = JsonConvert.DeserializeObject<RootobjectPlayerData>(jsonstring);
List<object> list = new List<object>();
list.Add(obj.data.accountinfo);
list.Add(obj.data.accountinfo.statistics);
list.Add(obj.data.accountinfo.statistics.clan);
list.Add(obj.data.accountinfo.statistics.company);
list.Add(obj.data.accountinfo.statistics.all);
list.Add(obj.data.accountinfo.statistics.historical);
list.Add(obj.data.accountinfo.statistics.team);
return View(list);
我能够做断点并查看每个对象中的所有数据,但是我无法在屏幕上打印出来。
你会得到任何输出吗? – 2015-01-04 10:54:49
是的,列出所有的属性,然后由于我的catch块列出了一个例外。我试着用我正在尝试做的事情来googleing这个异常,并且无法弄清楚。 'System.NullReferenceException:对象引用未设置为对象的实例。“# – electrometro 2015-01-04 10:57:37
你的变量名让你失望。如果你使用更多的描述性变量,你的错误会更清晰。 – 2015-01-04 11:01:03