У меня обычно есть один контроллер, который поддерживает несколько видов (добавление, редактирование, удаление и т. Д.). Я читаю из своей базы данных модель, в которой есть поля для каждого фрагмента данных, который вы хотите видеть. Затем вы передаете модель представлению, чтобы оно могло ее отобразить.
После отправки формы вы получите от нее модель в качестве параметра для контроллера. Затем вы обновляете базу данных по мере необходимости.
Вот код. Я не пытался его скомпилировать, поэтому ваш пробег может отличаться.
public class ParentModel
{
// Parent fields
public string FirstName { get; set; }
public string LastName { get; set; }
IList<ChildModel> Children { get; set; }
}
public class ChildModel
{
// Child fields
public int Age { get; set; }
}
public ActionResult MyAction()
{
// Grab a model with the children property filled out
ParentModel myModel = GetFromDatabase();
return View("MyView", myModel);
}
Вид (сокращенно):
<%@ Page Title="" Language="C#" Inherits="System.Web.Mvc.ViewPage<ParentModel>" %>
.
.
.
<% using (Html.BeginForm("MyAction", "MyController", FormMethod.Post)) %>
<% {%>
<%= Html.ValidationSummary(true) %>
<table>
<tr valign="top">
<td>
<%:Html.LabelFor(a => a.FirstName)%>:
</td>
<td>
<%:Html.EditorFor(a => a.FirstName)%>
<%:Html.ValidationMessageFor(a => a.FirstName)%>
</td>
</tr>
<tr valign="top">
<td>
<%:Html.LabelFor(a => a.LastName)%>:
</td>
<td>
<%:Html.EditorFor(a => a.LastName)%>
<%:Html.ValidationMessageFor(a => a.LastName)%>
</td>
</tr>
</table>
.
.
.
<%} %>