Валидаторы и проблема ClientIDMode (ASP.NET) - PullRequest
10 голосов
/ 13 октября 2010

ASP.NET 4.0 ввел свойство ClientIDMode, которое позволяет указать, как идентификаторы html-элемента будут отображаться в выходном html.

Мой проект в настоящее время настроен на «Статический» (самый короткий / не содержит идентификаторов иерархии)

При использовании любого валидатора (RequiredFieldValidator, RegularExpressionValidator ...), если элемент управления, который он проверяет явно, не имеет своего свойства ClientIDMode: AutoID Я получаю сообщение об ошибке:

Входной параметр 'controlId' не может быть пустая строка.

Это ожидаемое поведение?

Редактировать: Будучи довольно глупым с сообщением об ошибке, он хотел, чтобы я добавил идентификатор в Validator, чего я, очевидно, не делаю (если только мне не нужно ссылаться на него).

Все еще кажется странным, что он должен потерпеть неудачу по этой причине.

1 Ответ

3 голосов
/ 20 ноября 2010

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

Одним из обходных путей является переключение ClientIDModes на нарушающем пользовательском элементе управления. Надеюсь, это поможет!

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