我有一个这样的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
类。