почему элемент формы создается на каждой странице .aspx? - PullRequest
1 голос
/ 25 марта 2011

Я новичок в asp.net, мне нужно, чтобы наше приложение использовало asp.net, и я использую визуальную студию, я просто обнаружил, что каждый раз, когда я создаю новую страницу, будет что-то вроде:

<body>
  <form runat="server">
   the content of my page
  </form>
</body>

Я просто не знаю, почему элемент формы существует на КАЖДОЙ странице, некоторые из них вообще не нуждаются в форме, поскольку я не пытаюсь отправить что-либо на серверную часть, используя форму.

Почему?

Ответы [ 2 ]

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

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

Если вам нужно иметь две отдельные «формы», вы, как правило, помещаете каждую из них в элемент управления Panel и устанавливаете ее свойство DefaultButton и свойство ValidationGroup для его элементов, чтобы изолировать ее от других »форм. . "

Для получения дополнительной информации см. Веб-формы ASP.NET от W3Schools .

1 голос
/ 25 марта 2011

В исходной структуре ASP.Net (Webforms) были сделаны некоторые предположения о том, как вы будете работать. Некоторые из них могут раздражать сейчас, в зависимости от того, как вам нравится работать.

  • Для большинства элементов управления .Net требуется форма.
  • ViewState требует форму, а только одна форма.
  • Для модели Postback требуется форма, а только одна форма.

Большинство функций asp.net не работали бы, если бы не было формы. Поэтому отсутствие формы по умолчанию вызовет много проблем, особенно для начинающих. Первым шагом почти на каждой странице будет перетаскивание вашего «элемента управления контейнером формы» или того, как оно будет называться, и люди будут все время ошибаться. Учитывая их план, одна форма, которая всегда была там , имела смысл.

В этом обсуждении предполагается, что Webforms , веб-платформа ASP.NET по умолчанию. В ASP.Net MVC отсутствует элемент автоматической формы. Многие предположения, подобные этому, обмениваются на другие предположения , которые многие из нас сейчас предпочитают.

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