我现在已经两年没有做任何MVC,所以我觉得我现在非常生疏。我使用下面的代码在我的页面上显示一个简单的数据列表,但是我收到了错误
foreach语句无法对“Models.UsersViewModel”类型的变量进行操作,因为“.Models.UsersViewModel”不包含“GetEnumerator”的公共定义
我确定我只是错过了一些非常愚蠢的东西,但正如我所说,我只是把我的脚浸回池塘里。
有任何洞察力。
Business.User
public Decimal USER_ID { get; set; }
public String USERNAME { get; set; }
public String SURNAME { get; set; }
public String GIVENNAME { get; set; }
public static List<User> GetList()
{
Entities ctx = new Entities();
List<User> a = (from x in ctx.TABLE1
select new User()
{
USER_ID = x.USER_ID,
USERNAME = x.USERNAME,
SURNAME = x.SURNAME,
GIVENNAME = x.GIVENNAME
}).OrderBy(o => o.SURNAME).ToList();
return a;
}
控制器
public ActionResult Index()
{
ViewBag.EnvPath = CurrentENV;
var usersViewModel = new UsersViewModel();
usersViewModel._Users = Business.User.GetList();
return View(usersViewModel);
}
视图模型
public class UsersViewModel
{
public List<Business.User> _Users { get; set; }
}
查看
@model ProactiveDisclosure.Models.UsersViewModel
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table class="table">
<tr>
<th></th>
</tr>
@foreach (var item in Model) {
}
</table>
答案 0 :(得分:1)
UsersViewModel
包含 Business.User
列表。它不是Business.User
本身的列表。
将迭代更改为@foreach(var user in Model._Users)
答案 1 :(得分:0)
嗯,奇怪的是,它在我关闭我的Index.cshtml并使用Model._Users重新打开时开始工作