Проблема с IEnumerable в представлении

У меня есть представление, которое перечисляет модель.

Вне сетки, которая перечисляет модель, я хочу иметь ссылку на создание, которая принимает параметр MeetingActionId, который привязывает объект ActionUpdate к определенному MeetingAction.

Как мне получить ссылку на создание, чтобы принять это свойство? на данный момент я получаю ошибку

'System.Collections.Generic.IEnumerable' does not contain
 a definition for 'MeetingActionId' and no extension method 'MeetingActionId' 
 accepting a first argument of type
'System.Collections.Generic.IEnumerable' could be found 

Я предполагаю, что это как-то связано с IEnumerable. Я собирался решить эту проблему, поместив сетку в партиал, но мне это кажется хакерским решением.

Может ли кто-нибудь помочь и, надеюсь, объяснить мне, почему это происходит?

Спасибо.

Фрагмент кода ниже использует MVCContrib Grid и T4MVC для строго типизированных ссылок действий.

@model IEnumerable<Actioner.Models.ActionUpdate>
@using MvcContrib.UI.Grid     

@{
    ViewBag.Title = "ListUpdates";
}

<h2>ListUpdates</h2>
@Html.ActionLink("Add New Update",MVC.ActionUpdates.Create(Model.MeetingActionId))


@Html.Grid(Model).Columns(column => {
   column.For(a=> a.UpdateText);
   column.For(a=> a.CreatedOn).Format("{0:d}");
   column.For(a=>a.CreatedBy);
})

РЕДАКТИРОВАТЬ: Спасибо за вклад, ребята. После некоторого размышления я решил, что было бы лучше, чтобы сетка обновлений действий отображалась как частичное представление в представлении «подробности» MeetingActions, таким образом полностью избегая этой проблемы.

этот вопрос можно закрыть


person MrBliz    schedule 10.02.2011    source источник
comment
Что ты пытаешься сделать? У вас есть представление, которое работает с коллекцией некоторой модели. Вы хотите создать ссылку внутри этого представления. На какой элемент этой коллекции вы хотите указать эту ссылку? Если вы можете ответить на этот вопрос, вы можете взять этот конкретный экземпляр модели из коллекции и использовать его в своем шаблоне T4.   -  person Darin Dimitrov    schedule 11.02.2011
comment
Все еще в замешательстве! Ссылка должна создать новый ActionUpdate. Каждый ActionUpdate принадлежит MeetingAction, поэтому ActionUpdate имеет MeetingActionId, который я хочу передать в действие создания в контроллере ActionUpdate.   -  person MrBliz    schedule 11.02.2011


Ответы (1)


Привет, я не уверен, что правильно это понимаю, но похоже, что модель представляет собой список, содержащий элементы типа ActionUpdate, этот тип имеет свойство с именем MeetingActionId. Если это так, то у самой модели нет свойства MeetingActionId, которое вы пытаетесь использовать. Возможно, вы могли бы к этому:

Model.First().MeetingActionId

person Pelle    schedule 10.02.2011
comment
Ну, это работает (конечно, с точки зрения компиляции, во всяком случае :)), но я получаю ошибку времени выполнения: «Последовательность не содержит элементов». - person MrBliz; 11.02.2011
comment
Возможно, список (модель) пуст? - person Pelle; 11.02.2011
comment
Не было бы целесообразно иметь модель представления с двумя свойствами: MeetingActionId и IEnumerbale‹ActionUpdate›? По крайней мере, нули/пустые значения не портят все удовольствие. - person rene; 11.02.2011