我有这个LINQ ......
var n = from a in this.DataContext.News select new { a.ID, a.Name, a.StartDate, a.EndDate, SportName = (from v in this.DataContext.Sports where v.ID == a.SportID select v).FirstOrDefault()};
ViewData["News"] = n.ToList();
我需要生成一个HTML表格。我无法弄清楚如何从ViewData [“新闻”]获取项目。任何线索?
<% foreach (var item in (???) ViewData["News"])
{ %> ...
更新
我发现了这个post我似乎必须创建一个额外的类NewsView,它将包含所有选定的字段。然后我可以转换为NewsView ...还有其他方法吗?
var n= from a in this.DataContext.News
select new NewsView { ID = a.ID, Name = a.Name, StartDate = a.StartDate, EndDate = a.EndDate,
SportName = (from v in this.DataContext.Sports where v.ID == a.SportID select v).FirstOrDefault().Name};
和
<% foreach (var item in (IEnumerable<MyProject.ViewModels.NewsView>)ViewData["News"])
{ %>
答案 0 :(得分:1)
要做的最好的事情是在模型中创建一个类,以便您有一个List项目来分配您的数据然后重复,而不是使用ViewData或Viewbags。然后在foreach循环中,var项将具有点(。)属性。
@foreach (var item in Model.myClassItems)
{
<div>@item.classproperty</div>
}