Предпочитаемый способ контроля доступа к тексту при обратной передаче - PullRequest
3 голосов
/ 02 марта 2011

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

protected void btnCalculate_Click(object sender, EventArgs e)
{
    string text1 = textBox1.Text;    //one way
    string text2 = Request["textBox2"];    //the other way
    lblSum.Text = text1+text2;
}

Полагаю, вы захотите использовать Запрос [""], если данные были размещены на новой странице, но для этой ситуации один способ предпочтительнее другого и почему?

Ответы [ 3 ]

3 голосов
/ 02 марта 2011

После Классического ASP 3.0 с появлением ASP.NET и их самопубликующихся страниц стандартным способом является ваш // односторонний вариант, то есть Control.Text, Request [] является избыточным, потому что страница отправляется обратно на себя.

2 голосов
/ 02 марта 2011

Если постбэк находится на той же странице:

textBox1.Text;

Для доступа к элементу управления на другой странице есть несколько методов: Session, Context, PreviousPage. Как передавать значения между страницами ASP.NET

Для сложения строк используйте

String.Concat(text1, text2);

или

String.Format("{0}{1}",text1, text2);
1 голос
/ 02 марта 2011

Использование Request[] отчасти побеждает всю цель архитектуры веб-форм. На чисто практическом уровне это не будет работать и для сложных форм, потому что идентификатор элемента управления не обязательно будет одинаковым на сервере и на клиенте.

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

Вы действительно не должны публиковать с одной страницы на другую в ASP.NET в любом случае - это нарушает архитектуру, и не так много причин, почему вы хотели бы сделать это в большинстве ситуаций.

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