редактировать родителей и детей в том же виде - PullRequest
1 голос
/ 25 мая 2011

Как мне отредактировать родительский объект и коллекцию дочерних объектов в одном представлении? Любые хорошие учебники о том, как сделать это с mvc3 и автоматическим связыванием?

Очень ценится!

1 Ответ

0 голосов
/ 02 июня 2011

Ключ должен был бы использовать следующий синтаксис в вашем представлении для ваших дочерних элементов коллекции:

data.Children.Index and data.Children[index].Properties

Вот простой пример:

Модель:

public class Parent
{
  public int FieldA { get; set; }
  public string FieldB { get; set; }
}

public class Child
{
  public int Id { get; set; }
  public string Name { get; set; }
}

public class ParentChildViewModel
{
  public Parent Master { get; set; }
  public List<Child> Children { get; set; }
}

Контроллер:

public ActionResult Edit()
{
  return View(new ParentChildViewModel());
}

[HttpPost]
public ActionResult Edit(ParentChildViewModel data)
{
  // Save your objects
}

Вид:

@model ParentChildViewModel
...
@using(Html.BeginForm())
{
  @Html.TextBoxFor(x => x.Master.FieldA);

  @{ int index = 0; }
  @foreach(var c in Model.Children)
  {
    @Html.Hidden("data.Children.Index", index);
    @Html.TextBox("data.Children[" + index + "].Name")
    @{ index++; }
  }
}

На вашем контроллере вы получите в свойствах .Children изменения, внесенные в свойства Name и в свойствах .Master.сделано для родителей.Единственный прием - это синтаксис data.Children , где data - это имя имени переменной вашего контроллера.Data.Children.Index требуется для каждого ребенка, и, конечно, вы должны увеличивать индекс.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...