2012-03-24 10 views
2

私はこのようなContactModelを持っている:モデルのChildCollectionを編集するには?

public class ContactModel 
{ 
    public virtual int ID { get; set; } 
    public virtual string LastName { get; set; } 
    public virtual ICollection<Note> Notes { get; set; } 
} 

子コレクション(注)このように定義されています

public class Note 
{ 
    public virtual int ID { get; set; } 
    public virtual ContactModel ContactModel { get; set; }  
    public virtual string NotesValue { get; set; } 
} 

私はContactModelを取り、インデックス、[編集]を作成し、コントローラを追加した、のためのビューを作成します。それ。

<span class="names"><a href="????">@Model.LastName</a></span> 

そして今、ここでは、私は立ち往生午前ところ、私がしたいです。私はこれを持っている部分_ContactView内部

@foreach (var item in Model) 
{ 
    @Html.Partial("_ContactView", item) 

} 

:私は部分的なビューを取るために少し接触のためのインデックス表示を変更しましたEditView for Noteクラスを作成し、上のURLからこのビューをポイントします。つまり、ユーザーが姓をクリックすると、このユーザーのメモを追加するためにNotesの編集ビューが開きます。

どうすればよいですか?

答えて

1

メモを扱う専用の新しいコントローラを作成できます。新しいNotesController

<span class="names"><a href="@Html.Action("Edit", "Notes", new { ContactModelId = @Model.ID })">@Model.LastName</a></span> 

を、ContactModelのIDは、URLを通過することに基づいて、ノートのあなたのコレクションをアップロード::そうのようにそれのためにURLを作成します

public class NotesController : Controller { 
    public ActionResult Edit(int contactModelId) { 
     var result = Repository.ContactModel.Where(x => x.ContactModelId).Select(x => x.Notes); 
     return View(result); 
    } 
} 

追加するためのコードを追加します。 /ノートを必要に応じてNotesControllerクラスに更新します。

関連する問題