【问题标题】:error while trying to display view in asp.net mvc 3 app?尝试在 asp.net mvc 3 应用程序中显示视图时出错?
【发布时间】:2011-10-02 03:49:04
【问题描述】:

我正在尝试在视图中显示列表,如何解决此错误?

传入字典的模型项是类型 'System.Data.Objects.ObjectQuery1[System.Linq.IGrouping2[System.Int32,mvc3Post.Models.Contact]]', 但是这本字典需要一个类型的模型项 'System.Collections.Generic.IEnumerable`1[mvc3Post.Models.Contact]'。

控制器:

    public ActionResult Index()
    {
        AdventureWorksEntities db = new AdventureWorksEntities();

        var result = from soh in db.SalesOrderHeaders
                     join co in db.Contacts
                     on soh.ContactID equals co.ContactID
                     orderby co.FirstName
                     group co by co.ContactID into g
                     select g;
        return View(result.AsEnumerable());
    }

查看:

@model IEnumerable<mvc3Post.Models.Contact>
@{
    ViewBag.Title = "Index";
}
<h2>
    Index</h2>
<p>
    @Html.ActionLink("Create New", "Create")
</p>
<table>
    <tr>
        <th>
            NameStyle
        </th>
        <th>
            Title
        </th>
    </tr>
    @foreach (var item in Model)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.NameStyle)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Title)
            </td>
            <td>
                @Html.ActionLink("Edit", "Edit", new { id = item.ContactID }) |
                @Html.ActionLink("Details", "Details", new { id = item.ContactID }) |
                @Html.ActionLink("Delete", "Delete", new { id = item.ContactID })
            </td>
        </tr>
    }
</table>

【问题讨论】:

    标签: linq asp.net-mvc-3 c#-4.0


    【解决方案1】:

    现在更新,我看到了控制器方法:

    您可能需要将 LINQ 结果集转换为列表或更具体的内容(例如,contacts.ToList())。

    另一种选择可能是为页面的列表对象创建一个根对象以继续存在。如果每个 View 都有一个对应的 Model 类来表示它的整个状态,我发现它更容易遵循和维护。

    我认为任何一条路线都可以解决您的问题。如果我不得不推荐一个与另一个相比,我认为后者可能是更好的方法。

    【讨论】:

    • 控制器方法见上文:)
    猜你喜欢
    • 1970-01-01
    • 2022-07-02
    • 2011-04-15
    • 2010-10-23
    • 2017-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多