ASP.Net MVC ViewData 问题
我有以下代码:
private Models.mediamanagerEntities dataModel = new Models.mediamanagerEntities();
public ActionResult Index(FormCollection form)
{
ViewData.Model = (from m in dataModel.Customers select m.Type.Items).ToList();
return View();
}
View:
%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<List<Project_Name.Models.Item>>" %>
<% foreach (var m in ViewData.Model)
{ %>
Title: <%= m.Title %>
<% } %>
出现以下错误:
传递到字典中的模型项的类型为 'System.Collections.Generic.List1[System.Data.Objects.DataClasses.EntityCollection
1[ Project_Name.Models.Item]]',但此字典需要类型为“System.Collections.Generic.List`1[Project_Name.Models.Item] 的模型项。
我不太确定这里发生了什么或如何纠正它,谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
当您的视图需要
List
时,您的 LINQ 正在创建一个类似List>
的列表。我不太了解 LINQ 的查询语法,但这就是您使用函数语法获得所需内容的方式:
这将获取每个客户下的许多
Items
并将它们展平为一个列表项目
。Your LINQ is creating a list like this
List<EntityCollection<Item>>
, when your view wantsList<Item>
.I don't know query syntax for LINQ very well, but this is how you'd get what you want with function syntax:
That will take the many
Items
under each customer and flatten them into one list ofItems
.将此行: 替换
为以下内容:
Replace this line:
with the following: