ошибка при попытке отобразить вид в приложении asp.net mvc 3? - PullRequest
0 голосов
/ 02 октября 2011

Я пытаюсь отобразить список в представлении, как исправить эту ошибку?

Элемент модели, переданный в словарь, имеет тип 'System.Data.Objects.ObjectQuery 1[System.Linq.IGrouping 2 [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>

1 Ответ

0 голосов
/ 02 октября 2011

Обновлено сейчас, когда я вижу метод контроллера:

Возможно, вам потребуется преобразовать ваш набор результатов LINQ в список или что-то более точное (например, contacts.ToList()).

Другой альтернативой может быть создание корневого объекта для объекта списка вашей страницы, на котором можно жить. Мне немного легче следить и поддерживать, если у каждого представления есть соответствующий класс Model, представляющий все его состояние.

Я думаю, что любой маршрут решит вашу проблему. Я думаю, что последнее, вероятно, является лучшим способом, если бы мне пришлось рекомендовать одно против другого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...