2010-01-12 3 views
1

Я использую ASP.NET MVC 2.0.Проверка на стороне клиента и коллекции или динамические формы

Мне нужно реализовать динамическую форму, чтобы добавить новую строку таблицы «на лету».

My ViewModel содержит ICollection в соответствии с каждым строком, который будет добавлен в форму.

Теперь, как я могу сделать проверку на стороне клиента с помощью этого механизма?

ответ

0

Вы должны привязать свою модель к списку.

Пожалуйста, ознакомьтесь с: http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx (Phil Haack является одним из людей Microsoft MVC). Это, по сути, хак, который ребята из Microsoft сделали для обеспечения функциональности (Фил утверждает, что они разрабатывают какой-то другой способ сделать это, но пока мы это делаем). Вы можете легко добавить к нему контроль проверки. Пожалуйста, внимательно посмотрите ОЧЕНЬ, когда вы реализуете схему именования, и НЕ забывайте поместить скрытое поле «Индекс». Значение индекса может быть любым, что вам нужно (оно не должно быть числом в последовательности), но все, что вы помещаете в скрытое поле, в качестве значения должно находиться в квадратных скобках для элементов управления ввода, которые следуют, как и в случае с Филлом пример. Дважды проверьте это, я как-то дошел до чистого страдания, потому что забыл поместить скрытый Индекс, так как очень легко что-то пропустить. Кроме того, вторая часть схемы именования («Имя» и «Цена») должна быть такой же, как и в вашей модели.

Когда вы закончите с этим, используйте jQuery для динамического добавления/удаления элементов в вашей форме. Обратите внимание, что селектор jQuery не позволяет использовать квадратные скобки для идентификаторов, поэтому вы можете создавать атрибуты «id» элементов управления ввода каким-либо другим способом (то есть «something_index_propertyName»), в то время как вы сохраняете атрибут «значение» в соответствии с схемой именования.

Счастливое кодирование.

 Смежные вопросы

  • Нет связанных вопросов^_^