ASP.NET MVC 3 - editar itens adicionados dinamicamente à coleção de modelos na caixa de diálogo jquery
Sou novo no MVC, então não tinha certeza de qual seria a melhor abordagem aqui.
Tenho um modelo de exibição que contém várias coleções como esta:
public class MainViewModel{
public List<AViewModel> A { get; set; }
public List<BViewModel> B {get; set; }
...}
Estou usando a abordagem de Steve SandersonAqu para adicionar itens dinamicamente a uma coleção, e está funcionando bem desde que os itens filhos sejam editáveis na exibição principa
O problema que estou tendo é retornar uma lista somente leitura com um link de edição que abrirá os detalhes para editar em uma caixa de diálogo pop-u
Como esses itens podem ser adicionados recentemente, não posso usar a propriedade ID para retornar uma visão parcial do controlador. Parece que vou ter que renderizar os editores em uma div oculta assim:
<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>
Alguém sabe de uma maneira melhor de fazer isso?