MVC равнозначно повторителя с несколькими элементами формы и флажком для выбора - PullRequest
1 голос
/ 01 июля 2011

Мне нужно скопировать функциональность, которую вы получаете, с повторителем asp, который содержит флажки, текстовые поля и случайный выпадающий список в приложении MVC. В традиционных веб-формах вы получаете событие обратной передачи, и его довольно легко получить на всех элементах управления и их значениях, связанных с флажком (id).

У кого-нибудь есть хорошие предложения о том, как вернуть значения в сообщение для элементов, у которых установлен флажок. Я могу вернуть некоторые массивы обратно в FormCollection (и даже строго типизированное представление), но я не смог найти хороший способ эффективного связывания значений.

Во всех строках есть флажок и текстовое поле, в некоторых строках также есть раскрывающийся список

Для дальнейшего объяснения ... строка 1 имеет флажок и текстовое поле строка 2 имеет флажок, текстовое поле и раскрывающийся список.

если пользователь выбирает строки 1 и 2, мне нужно получить значения для всех элементов формы (для некоторых вычислений). Кроме того, я не нашел хорошего метода обработки ошибок валидации.

любые предложения приветствуются.

1 Ответ

1 голос
/ 01 июля 2011

Самое простое, что нужно сделать, - это повторить коллекцию, для которой у вас будет повторитель.Использование синтаксиса Razor:

@using (Html.BeginForm()) {
<table>
@for (var i = 0; i < Models.Items.Count; i++) {
<tr>
<td>
  @Html.CheckBoxFor(x => Model.Items[i].SomeBool)
</td>
<td>
  @Html.TextBoxFor(x => Model.Items[i].SomeString)
</td>
</tr>
}
</table>
<button type="submit">Go</button>
}

Затем метод контроллера:

[HttpPost]
public ActionResult Index(MyViewModel viewModel) {
 // view model will be bound to values in form
}

Предполагается, что модель в представлении имеет тип MyViewModel.Если у вас есть представление о том, как это работает, вы можете взглянуть на ASP.NET MVC grid-структуры .

...