MVC3 передает родительскую сущность в виде списка - PullRequest
0 голосов
/ 08 февраля 2011

Я довольно новичок в MVC3. Я пытаюсь добиться следующего:

Страница со списком разделов:

@model IEnumerable<Demo.Models.Section>

Я перебираю разделы и показываю некоторую информацию. Внутри каждого раздела есть список предметов. Эти элементы отображаются в частичном представлении:

@model IEnumerable<Demo.Models.StringItem>

В этом же частичном представлении у меня есть actionlink для создания нового StringItem. Но при создании нового StringItem мне нужно передать идентификатор раздела, которому он будет принадлежать. Когда в разделе уже есть Предметы, я могу передать SectionID первого предмета в коллекции. НО, если список пуст, я понятия не имею, как передать идентификатор раздела, для которого необходимо создать StringItem.

Я пытался:

@Html.ActionLink("Create New", "CreateStringItem", ViewContext.ParentActionViewContext.ViewData.Model)

Но это пройдет все разделы, которые есть на этой странице, что имеет смысл, так как родительское представление - Ienumerable Section.

Как можно пройти, чтобы передать родительский идентификатор?

1 Ответ

0 голосов
/ 08 февраля 2011

Используйте @model Demo.Models.Section вместо IEnumerable, а затем получите доступ к вашему массиву элементов как Model.Items и id как Model.ID или как-то еще.

Или создайте новую модель типа

class SectionModel {
    public int ParentID { get; set; }
    public IEnumerable<Demo.Models.StringItem> Items { get; set; }
}

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

Доступ к родительскому представлению таким образом был бы ошибкой архитектуры кода.

...