Как редактировать ChildCollection модели? - PullRequest
2 голосов
/ 24 марта 2012

У меня есть ContactModel, как это:

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 и создает индекс,Редактировать, создавать виды для него.

например, я немного изменил индексное представление для контакта, чтобы сделать частичное представление:

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

}

Внутри частичного _ContactView у меня есть это:

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

А теперьвот где я застрял, я хотел бы создать класс EditView for Note и указать на это представление из URL выше.Это означает, что когда пользователь нажимает на Фамилию, он должен открыть окно редактирования для Заметок, чтобы добавить дополнительные заметки для этого человека.

Как мне этого добиться?

1 Ответ

1 голос
/ 29 марта 2012

Вы можете создать новый контроллер, предназначенный для обработки заметок. Создайте для него URL-адрес примерно так:

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

В новом NotesController загрузите свою коллекцию заметок на основе идентификатора ContactModel, передаваемого через 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 при необходимости.

...