2014-02-13 2 views
1

Восхождение на кривую обучения для создания веб-страниц asp.net с Visual Studio 2010 (VB).asp.net: Обработка данных формы в Visual Studio 2010

Я написал довольно сложную страницу .aspx с элементами управления формой, включая текстовые поля и кнопки, и т. Д. Я никогда не думал разместить элементы управления формы внутри блока <form>. Вместо этого все элементы управления включают в себя директиву «runat»; например, <asp:textbox id="txtUserName" runat="server"> и т. д. В коде я получаю доступ к данным с помощью strUserName = txtUserName.text. Кажется, это работает отлично.

Теперь, однако, я получил некоторые страницы форм из нашего контрактного «профессионального» веб-разработчика, в котором код формы заключен в блок <form runat="server">, и ни один из элементов управления не включает директиву runat. Доступ к данным из этих элементов управления несколько отличается: он использует метод <input type="text name="txtUserName" id="txtUserName" />, и доступ к данным в кодебе составляет strUserName = Request.Form("txtUserName").ToString.

Мой метод работает нормально, но мне интересно, есть ли разница в поведении или надежности между моим методом и его. Хотя мой путь работает, я делаю это неправильно?

Mine основан на онлайн-исследовании, которое я сделал, чтобы изучить этот материал, и я не помню, чтобы видел что-то похожее на него. Тем не менее, только сегодня я вижу места, которые говорят, что на страницах .aspx формы управления ДОЛЖНЫ быть заключены в блок <form> (т. Е. this page at w3schools.com).

Может ли это прояснить это для меня?

Благодарим за помощь!

+0

Без формы как вы можете отправлять данные на сервере. –

ответ

1

Вы не делаете это неправильно (вы используете мой предпочтительный подход), но ваши входы все равно должны находиться в прилагаемом теге формы.

Он использует HtmlControls (пространство имен System.Web.UI.HtmlControls), и вы используете веб-элементы управления (System.Web.UI.WebControls.). Ваши элементы управления обеспечивают лучшую функциональность на сервере (просмотр и доступ через серверный код) и его подход более легкий.

+0

Это имеет смысл, учитывая, что страница, которую он написал для нас, была довольно обширной. Это интернет-магазин нашей компании. Это не совсем современный сайт электронной коммерции, он отправляет заказ клиента только по электронной почте в наш отдел продаж, поэтому он не обрабатывает кредитные карты и т. Д .; но мой значительно менее сложный, хотя он использует панели обновления. Благодаря! –

+0

В этом случае вам понадобится тег формы, иначе ваша страница asp.net будет вызывать ошибки при установке любых элементов управления asp.net. Ваша страница использует MasterPage? В этом случае форма будет находиться в MasterPage, а не в вашей .aspx-странице. – gbs

+0

Страница нашего контрактного веб-разработчика появилась только с главной страницей aspx и кодом CS. Вы рекомендуете переместить форму на главную страницу? Будет ли в этом польза? Как бы то ни было, он все еще бросает несколько ошибок внутри Visual Studio, и мне приходится их гладить. Очень сложно угадать другого программиста. –

Смежные вопросы