Это потому что выбранное значение
не было в DropDownList, когда это было
первым подали на страницу?
Да. Вы, вероятно, заметите, что ваш выпадающий список не будет содержать элементов при обратной передаче, и да, это потому, что вы добавляете свои элементы на стороне клиента. Любые элементы, которые вы добавляете в элемент управления на клиенте, полностью неизвестны серверу. Поэтому проверка вашего сервера всегда будет неудачной, поскольку это поле обязательно для заполнения.
На самом деле, добавление элементов динамически с помощью клиентского скрипта вызовет EventValidation, чтобы сообщить о возможной проблеме безопасности, и вам придется установить EnableEventValidation
в false
в вашей директиве <%@ Page %>
, чтобы иметь возможность почта.
Лучший способ обойти это либо
Создайте свои элементы на стороне сервера или
Не используйте для этого серверный элемент управления (используйте обычный список выбора non-asp.net) и проверьте его вручную на сервере, просмотрев опубликованные значения.