ASP.Net MVC ViewData 问题

发布于 2024-10-26 18:36:07 字数 822 浏览 2 评论 0 原文

我有以下代码:

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.EntityCollection1[ Project_Name.Models.Item]]',但此字典需要类型为“System.Collections.Generic.List`1[Project_Name.Models.Item] 的模型项。

我不太确定这里发生了什么或如何纠正它,谢谢。

I have the following code:

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 %>
    <% } %>

I get the following error:

The model item passed into the dictionary is of type 'System.Collections.Generic.List1[System.Data.Objects.DataClasses.EntityCollection1[Project_Name.Models.Item]]', but this dictionary requires a model item of type 'System.Collections.Generic.List`1[Project_Name.Models.Item].

I'm not too sure what it happening here or how to rectify it, Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

辞取 2024-11-02 18:36:07

当您的视图需要 List 时,您的 LINQ 正在创建一个类似 List> 的列表。

我不太了解 LINQ 的查询语法,但这就是您使用函数语法获得所需内容的方式:

ViewData.Model = dataModel.Customers.SelectMany(c => c.Type.Items).ToList();

这将获取每个客户下的许多 Items 并将它们展平为一个列表项目

Your LINQ is creating a list like this List<EntityCollection<Item>>, when your view wants List<Item>.

I don't know query syntax for LINQ very well, but this is how you'd get what you want with function syntax:

ViewData.Model = dataModel.Customers.SelectMany(c => c.Type.Items).ToList();

That will take the many Items under each customer and flatten them into one list of Items.

叫思念不要吵 2024-11-02 18:36:07

将此行: 替换

ViewData.Model = (from m in dataModel.Customers select m.Type.Items).ToList();

为以下内容:

 ViewData.Model = dataModel.Type.ToList();

Replace this line:

ViewData.Model = (from m in dataModel.Customers select m.Type.Items).ToList();

with the following:

 ViewData.Model = dataModel.Type.ToList();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文