Asp.net mvc 数据已存在,但无法显示
我有一个JSON函数来返回以下数据,这正是我所期望的:Asp.net mvc 数据已存在,但无法显示,asp.net-mvc,asp.net-mvc-3,Asp.net Mvc,Asp.net Mvc 3,我有一个JSON函数来返回以下数据,这正是我所期望的: [{"ShowId":1,"Title":"The Forresters Axe","Date":"\/Date(1339714800000)\/","Time":{"Hours":19,"Minutes":0,"Seconds":0,"Milliseconds":0,"Ticks":684000000000,"Days":0,"TotalDays":0.79166666666666663,"TotalHours":19,"TotalMil
[{"ShowId":1,"Title":"The Forresters Axe","Date":"\/Date(1339714800000)\/","Time":{"Hours":19,"Minutes":0,"Seconds":0,"Milliseconds":0,"Ticks":684000000000,"Days":0,"TotalDays":0.79166666666666663,"TotalHours":19,"TotalMilliseconds":68400000,"TotalMinutes":1140,"TotalSeconds":68400}}]
但是当我试图在查看页面上显示标题时,我遇到了问题。这是查看页面代码:
<table> @foreach (var showList in Model) {<tr><td>@showList.Title</td></tr>}<.table>
我得到的错误是:
代码未处理RuntimeBinderException
“object”不包含标题的定义,该标题的表达式为new{…},您正在创建的视图基本上不支持将其作为模型传递到视图方法中
有几个变通办法:
但最简单的解决方案是创建一个保存数据的viewmodel:
public class CheckAvailViewModel
{
public int ShowId { get; set; }
public string Title { get; set; }
public DateTime Date { get; set; }
public DateTime Time { get; set; }
}
并从查询中返回以下内容:
var showList = from r in db.Runs
// ...
select new CheckAvailViewModel
{
ShowId = r.ShowId,
Title = s.Title,
Date = r.Date,
Time = r.Time
};
return View(showList.ToArray());
var showList = from r in db.Runs
// ...
select new CheckAvailViewModel
{
ShowId = r.ShowId,
Title = s.Title,
Date = r.Date,
Time = r.Time
};
return View(showList.ToArray());