Проверка на стороне клиента и коллекции или динамические формы - PullRequest
1 голос
/ 13 января 2010

Я использую ASP.NET MVC 2.0.

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

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

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

1 Ответ

0 голосов
/ 13 января 2010

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

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

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

Удачного кодирования.

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