Почему asp.net оборачивает страницу в форму? - PullRequest
8 голосов
/ 14 июня 2010

Я - разработчик PHP, который должен работать над проектами ASP.net, и мне интересно, почему каждая страница завернута в форму. Это просто не имеет смысла для меня.

Кроме того, что такое со всеми скрытыми полями ввода, особенно с полем «Просмотр состояния».

Ответы [ 4 ]

11 голосов
/ 14 июня 2010

ASP.Net пытается сделать так, чтобы программисты могли притворяться, что сеть представляет собой платформу с состоянием и что она ведет себя как настольное приложение.ViewState - это в основном сериализованный блок состояния страницы, когда она была сгенерирована.Когда страница отправляется обратно, модель на стороне сервера инициализируется значениями в ViewState, а затем применяются новые значения из опубликованной формы.

Часть того, как стать достойным программистом ASP.Net, учится, когда использоватьViewState, а не, потому что по умолчанию он используется везде, что вызывает много раздувания на загруженной странице.

5 голосов
/ 14 июня 2010

Каждая страница ASP.NET заключена в элемент <form>, поскольку вся структура вращается вокруг команд POST.

ASP.NET предоставляет «веб-элементы управления», которые являются объектно-ориентированными абстракциями элементов HTML (и в некоторых случаях группами элементов) - в своем коде на стороне сервера вы можете прикреплять команды к различным событиям в веб-элементах управления (например, , Button.OnClick, TextBox.OnChanged) - каркас связывает их, используя комбинацию скрытых полей и сгенерированного JavaScript. Сгенерированный javascript обычно устанавливает в скрытом поле несколько значений, чтобы указать (например), какой элемент управления вызвал сообщение и аргументы команды (если применимо), а затем отправляет форму.

ViewState - это методика, используемая платформой для сериализации состояния клиента. Это альтернатива интенсивному использованию сессий, торгуя большими полезными нагрузками HTML для меньшего объема памяти на сервере.

3 голосов
/ 14 июня 2010

Все в ASP.NET (aspx pages) работает без публикации данных.

Это означает, что все, что вы разместите на веб-странице с помощью действия на стороне сервера, будет вызывать «обратную запись» для себя. Обратная публикация содержит такую ​​информацию, как «что только что произошло» и некоторую информацию, которая помогает веб-странице поддерживать состояние (чего обычно не делают веб-страницы). Состояние представления является частью этой задачи поддержания состояния.

Если вам не нравится, как страницы aspx пытаются превратить веб-страницы в приложения с сохранением формы в форме, вы можете попробовать ASP.NET MVC Framework, который позволяет сети работать должным образом!

2 голосов
/ 14 июня 2010

ASP.NET WebForms Engine создает абстракцию с сохранением состояния по HTTP без сохранения состояния.

Ключевым объектом является страница сервера. Управляет событиями пожара, которые обрабатываются на стороне сервера. Элементы управления поддерживают свои состояния (обычно входные значения) между запросами.

Каждый раз, когда вы щелкаете по элементу управления сервером, запрос «обратной передачи» отправляется обратно на сервер. ViewState на самом деле содержит данные, сообщающие серверу, какой элемент управления вызвал событие. Вот почему всегда есть форма (и любые другие формы не допускаются).

...