C# 混淆了将数据控制器传递给viewmodel以查看
我已经两年没有做过MVC了,所以我觉得我现在很生疏。我使用下面的代码在我的页面上显示来自数据库的简单数据列表,但我得到了错误 foreach语句无法对“Models.UsersViewModel”类型的变量进行操作,因为“.Models.UsersViewModel”不包含“GetEnumerator”的公共定义 我肯定我错过了一些非常愚蠢的事情,但正如我所说的,我只是把我的脚伸进池塘里 任何洞察的Thx 商业用户C# 混淆了将数据控制器传递给viewmodel以查看,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,我已经两年没有做过MVC了,所以我觉得我现在很生疏。我使用下面的代码在我的页面上显示来自数据库的简单数据列表,但我得到了错误 foreach语句无法对“Models.UsersViewModel”类型的变量进行操作,因为“.Models.UsersViewModel”不包含“GetEnumerator”的公共定义 我肯定我错过了一些非常愚蠢的事情,但正如我所说的,我只是把我的脚伸进池塘里 任何洞察的Thx 商业用户 public Decimal USER_ID { get; set; }
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 class UsersViewModel
{
public List<Business.User> _Users { get; set; }
}
公共类UsersViewModel
{
公共列表_用户{get;set;}
}
看法
@model ProactiveDisclosure.Models.UsersViewModel
@{
ViewBag.Title=“Index”;
Layout=“~/Views/Shared/_Layout.cshtml”;
}
指数
@ActionLink(“新建”、“创建”)
@foreach(模型中的var项目){
}
UsersViewModel
包含业务用户列表。它不是业务用户本身的列表
将迭代更改为@foreach(模型中的var user.\u Users)
好吧,奇怪的是,当我关闭Index.cshtml并用模型重新打开时,它开始工作。\u Users@foreach(模型中的var项)。\u Users){
它不应该是Model.\u Users?我也是这么想的,但是foreach说'IEnumerable'没有包含'u Users'的定义,并且没有扩展方法'\u Users'在我添加模型时接受'IEnumerable'类型的第一个参数。\u Users我也是这么想的,但是foreach说'IEnumerable'没有包含定义当我添加模型时,“\u Users”和“no extension method”\u Users”接受类型为“IEnumerable”的第一个参数。\u UsersCan您发布了您现在使用的实际代码吗?
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>