Я новичок в MVC, поэтому я не был уверен, какой лучший подход будет здесь.
У меня есть модель представления, которая содержит несколько коллекций, подобных этой:
public class MainViewModel{
public List<AViewModel> A { get; set; }
public List<BViewModel> B {get; set; }
...}
Я использую подход Стива Сандерсона здесь для динамического добавления элементов в коллекцию, и он работает нормально, пока дочерние элементы доступны для редактирования на главном экране.
Проблема I 'у меня есть возвращаемый список только для чтения со ссылкой для редактирования, которая откроет детали для редактирования во всплывающем диалоговом окне.
Поскольку эти элементы могут быть добавлены вновь, я не могу использовать свойство ID для возврата частичноговид с контроллера.Похоже, мне придется визуализировать редакторов в скрытом div, как это:
<div class="AEditorRow">
@using (Html.BeginCollectionItem("A"))
{
@Html.DisplayFor(l => l.ID)
@Html.DisplayFor(l => l.Name)
@Html.DisplayFor(l => l.Code)
<a href="#" onclick="$('#detailsPopup').html($(this).parent().find('.ADetails').html() ).dialog()">edit</a> <text>|</text>
<a href="#" class="deleteRow">delete</a>
<div class="ADetails" style="display: none">
@using (Html.BeginForm("EditA", "Controller"))
{<fieldset>
<legend>Location</legend>
@Html.HiddenFor(model => model.ID)
<div class="editor-label">
@Html.LabelFor(model => model.Code)
</div>
Кто-нибудь знает лучший способ сделать это?