Добавьте связанные данные с помощью ASP.NET MVC 5 Razor

Добрый день,

Я создаю сайт ASP.Net с представлениями MVC 5 и Razor. У меня есть родительский класс и дочерний класс, так что у родителя может быть несколько дочерних элементов. Сначала я использую EF Code, и у меня есть две модели с моим контекстом БД в папке «Модели» в моем проекте. Я создал элементы лесов для обоих.

Что я сделал, так это детали Родителя, у меня есть список детей, используя представление _Partial. Что я хотел бы сделать, так это сведения о родителях, если вы нажмете на ссылку действия «Новый ребенок», отобразится «Создать для ребенка» с уже выбранным и недоступным для редактирования ParentId.

Что будет лучшим способом реализовать это? Нужно ли мне передавать данные контроллеру или во ViewBag? Я не знаю, правильный ли термин для этого типа макета/функциональности (представление Master-Detail?).

Я также был на сайте ASP.net, но не могу найти то, что ищу.


person pjdupreez    schedule 27.10.2015    source источник


Ответы (1)


Вы можете передать идентификатор родителя в действие «Создать», используя ссылку действия. Возможно что-то вроде этого, где «item» — это имя локальной переменной Parent:

@Html.ActionLink("New Child", "Create", new { id = item.Id }) 

Затем действие «Создать» может передать его форме в представлении «Создать».

person Mike G.    schedule 27.10.2015
comment
Блестяще, спасибо. Я на самом деле закончил тем, что использовал RouteValuesDictionary, а также мне потребовалась дополнительная информация: @{ var routeValues = new RouteValueDictionary(); routeValues.Add("ParentId", Model.ParentId); routeValues.Add("Surname", Model.Surname); } @Html.ActionLink("New Child", "Create", routeValues) - person pjdupreez; 28.10.2015
comment
Для чего бы это ни стоило, я думаю, вы могли бы также поместить это в строку, например: @Html.ActionLink("New Child", "Create", new { ParentId = Model.ParentId, Surname = Model.Surname }); - person Mike G.; 28.10.2015