Я понимаю, что вложенные теги <form>
недопустимы, но я хотел бы добиться аналогичной функциональности.
У меня есть форма, используемая для создания профиля пользователя, и в этой форме я бы хотел, чтобы пользователь мог указать одну или несколько школ, которые он посещал.
В моей текущей настройке (ниже) я могу подать только одну школу на форму. Я убрал валидацию и ярлыки с моей точки зрения, чтобы упростить проблему.
Вид:
<% using (Html.BeginForm())
{ %>
<div>
<fieldset>
<legend>Basic Information</legend>
<%: Html.EditorFor(m => m.Name) %>
<!-- more input fields-->
</fieldset>
<fieldset>
<legend>Schools</legend>
<%: Html.EditorFor(m => m.SchoolName) %>
<!-- more input fields -->
</fieldset>
<p>
<input type="submit" value="Create" />
</p>
</div>
<% } %>
Это представление строго типизировано в ProfileViewModel
, которое содержит все поля свойств. Мой контроллер содержит очень простое действие Create
, которое сохраняет входные данные в базу данных. Это отлично работает.
То, что я хотел бы сделать, это разрешить пользователю добавлять несколько школ, используя эту форму. В asp.net я бы использовал UpdatePanel для достижения того, чего я хочу, но все, что я прочитал, говорит о том, что в MVC стандартом является использование вызовов PartialView и jQuery / ajax.
- Если бы я включил раздел «Школы» своей формы в PartialView, как мне получить этот PartialView, вложенный в другую форму, для «отправки» и «обновления», не затрагивая основной вид?
- Как мне изменить модели моего представления, чтобы отразить это? Должен ли я сохранить
List<School>
в ProfileViewModel
, который содержит все добавленные школы, или есть лучший способ? Должен ли я передавать SchoolViewModel в PartialView?