【问题标题】:How to edit a ChildCollection of a Model?如何编辑模型的 ChildCollection?
【发布时间】:2012-03-24 10:40:17
【问题描述】:

我有一个像这样的 ContactModel:

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

子集合 Note 定义如下:

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

我添加了一个控制器,它采用 ContactModel 并为其创建索引、编辑、创建视图。

例如我已经稍微修改了联系人的索引视图以获取部分视图:

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

}

在部分 _ContactView 我有这个:

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

现在这是我卡住的地方,我想为 Note 类创建一个 EditView,并从上面的 URL 指向这个视图。这意味着当用户点击 Lastname 时,它​​应该打开 Notes 的编辑视图以便为这个人添加额外的注释。

我如何做到这一点?

【问题讨论】:

    标签: c# .net asp.net-mvc asp.net-mvc-4


    【解决方案1】:

    您可以创建一个专用于处理笔记的新控制器。像这样为其创建 URL:

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

    在新的 NotesController 中,根据通过 URL 传递的 ContactModel 的 ID 加载您的笔记集合:

    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 类添加/更新注释的代码。

    【讨论】:

      猜你喜欢
      • 2021-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多