Вы не должны публиковать списки данных.
Лучше всего вы можете разделить процесс, создать контроллер, который обрабатывает редактирование ваших Решений индивидуально, и создать контроллер, который обрабатывает отчет.В рамках вашей связи вы совершаете @ Html.Partial вызов представления редактирования решения.Что-то вроде:
/ Views / Raports / Index.cshtml:
@model myproject.models.Raport
@foreach (var decision in Model.Decisions)
{
<div>@Html.Partial("/Views/Decisions/Edit.cshtml", decision)</div>
}
<input type="button" onclick="document.getElementById('AddDecision').show();" value="Add" />
<div id="AddDecision" style="display: none;">
@Html.Partial("/Views/Decisions/Edit.cshtml", new Decision() { RaportId = Model.Id })
</div>
/ Views / Decisions / Edit.cshtml:
@model myproject.models.Decision
@using (Html.BeginForm("Edit", "Decisions", new { id = Model.Id }))
{
<div>
@Html.HiddenFor(a => a.RaportId)
@Html.EditorFor(a => a.Name)
</div>
<div>
@Html.EditorFor(a => a.Description)
</div>
<div>
<input type="submit">
</div>
}
DecisionsController.cs:
[HttpPost]
public ActionResult Edit(int id, int raportid, string name, string description){
var item = db.Decisions.FirstOrDefault(a => a.Id == id);
if (item != null)
{
// edit it
}
else
{
// add it
}
}
Я написал этот код из своей памяти, так что извините за любые ошибки.
Вы также можете создавать контроллеры / представления на основе ваших моделей, это сделает эти неполные страницы для вас.Добавьте новый контроллер, чем выберите шаблон, созданный структурой сущности.