我有一个这样的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并为其创建Index,Edit,Create视图的控制器。

例如我已经稍微修改了索引视图以进行联系以部分查看视图:

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

}


在部分_ContactView内部,我有以下内容:

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


现在是我遇到的问题,我想为Note类创建一个EditView并从上面的URL指向该视图。这意味着,当用户单击“姓氏”时,应打开“注释”的editview,以便为此人添加其他注释。

我该如何实现?

最佳答案

您可以创建一个专用于处理笔记的新控制器。为它创建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类。

10-05 23:52