【问题标题】:Displaying Lists in MVC Views在 MVC 视图中显示列表
【发布时间】:2018-08-21 07:56:03
【问题描述】:

我正在使用以下内容:

控制器:

var mylist = db.Users.Where(m => m.Users.foo == vm.foo)
vm.UserList = myList.ToList();

return View(vm.UserList)

用户视图模型:

//edited for space
public IEnumerable<User> UserList {get; set;}

查看:

@model IEnumerable<Project.Model.User>

为了不出现模型错误,我必须使用实际的用户模型

@model IEnumerable<Project.Model.User>

有没有办法使用我的ViewModel 并仍然显示UserList 或不使用@model IEnumerable&lt;&gt; 并成功显示列表?

@model IEnumerable<Project.Models.UserViewModel>

感谢任何输入。

【问题讨论】:

  • 您将 UserViewModel 返回到视图中,因此它必须是 @model Project.Models.UserViewModel(并且您使用 @foreach(var user in Model.UserList) { ... } 循环遍历它
  • 试试:@model IList
  • 让我试一试,我会告诉你结果。谢谢
  • @Dilip - 我收到错误“UserViewModel”不包含“GetEnumerator”的公共定义。

标签: c# asp.net-mvc razor lambda ienumerable


【解决方案1】:

是的。您可以将UserViewModel 发送到视图而不是发送列表。

样本:

@model UserViewModel
<table>    
  @foreach (var user in Model.UserList.ToList())
  {
         <tr>
               <td>
                      @user.Name
                </td>  
           </tr>                 
  }
</table>

【讨论】:

  • 让我试一试,我会告诉你结果。谢谢
  • @BenCdev :适合你吗?
  • 这似乎不起作用。 “UserViewModel”不包含“GetEnumerator”的公共定义
  • userlist 在您的视图中定义为 IEnumerable 在您的视图模型中。将 UserList 转换为 UserList.ToList()
  • 像这样?:public IEnumerable UserList.ToList() {get; set;} 在视图模型中...
猜你喜欢
  • 2015-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-16
  • 2021-05-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多