Отключает ли элемент управления .NET его повторную публикацию - PullRequest
1 голос
/ 26 февраля 2009

У меня есть пользовательский элемент управления ASP, основанный на выборе (выпадающее меню). Если я отключаю свой элемент управления, добавляя слово «отключено» в его HTML, я получаю ошибки нулевого указателя при обработке данных формы.

Я полагаю, либо браузер не отправляет обратно отключенные элементы формы, либо ASP.NET игнорирует их при обработке данных формы. Я не уверен, какой это. Я пытаюсь понять, где я теряю данные.

Спасибо за вашу помощь.

PS. Я понимаю, что есть лучший способ создания и отключения элементов управления, чем ручное редактирование HTML, но здесь есть контекст, который не позволяет мне делать иначе.

Ответы [ 2 ]

5 голосов
/ 26 февраля 2009

Да, настройка элемента управления Enable = false запрещает добавление значения элемента управления после сбора данных.

вместо него можно использовать атрибут readonly .

здесь, в MSDN написано:

Текстовое значение элемента управления TextBox со свойством ReadOnly, установленным в true отправляется на сервер при обратной передаче происходит, но сервер не обработка текстового поля только для чтения. Это предотвращает злоумышленника от изменение значения текста, которое только для чтения. Значение текста свойство сохраняется в представлении состояние между обратными передачами, если изменено серверным кодом.

Также вот ответ Microsoft на сообщение об ошибке, относящееся к теме.

но если вы используете классический способ, он будет работать:

txt2.Attributes.Add("readonly", "readonly");
0 голосов
/ 27 февраля 2009

Это предотвратит повторную отправку элемента управления, но помните, что эта веб-парадигма является технологией клиент / сервер. Пользователь может изменить данные клиента (HTML и / или Javascript) и вызвать обратную передачу независимо от того, что вы ему отправляете.

Поэтому не полагайтесь на это для чувствительных к безопасности операций, таких как манипулирование деньгами и т. Д.

Всегда выполняйте проверку на стороне сервера и для чувствительных операций.

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