2011-05-18 39 views
6

我是MVC的新手,所以我不確定最好的方法會在這裏。ASP.NET MVC 3 - 編輯項目動態添加到jQuery對話框中的模型集合

我有一個包含了多個集合這樣的視圖模型:

public class MainViewModel{  
    public List<AViewModel> A { get; set; } 
    public List<BViewModel> B {get; set; } 
    ...} 

我使用的是史蒂夫·桑德森的做法here動態地添加項目到一個集合,只要子項是它的正常工作在主視圖上編輯。

我遇到的問題是返回帶有編輯鏈接的只讀列表,該鏈接將打開要在彈出對話框中編輯的詳細信息。

由於這些項目可能是新添加的,因此我無法使用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> 

有誰知道一個更好的方式來做到這一點?

回答

相關問題