Как вы можете определить, была ли установлена форма runat=server?

StackOverflow https://stackoverflow.com/questions/1475083

  •  16-09-2019
  •  | 
  •  

Вопрос

При кодировании страницы Asp.Net обычно вы добавляете атрибут runat в aspx:

<form id="form1" runat="server">

Можно ли определить в коде, лежащем в основе, если пользователь этого не сделал, т. е.они сделали только это:

<form id="form1">

Здесь форма имеет идентификатор "form1", но в моем случае я этого не знаю.Код, стоящий за таким, как этот, - это то, что я ищу:

if(Page.HasForm)
{
}
Это было полезно?

Решение

У вас может быть только один тег формы с надписью "runat=server" на каждой странице .aspx.Все, что вам нужно сделать, это проверить, является ли страница.Форма имеет значение null или нет.Если это значение равно null, то нет формы, которая была бы помечена для запуска сервера.

if (Page.Form != null)
{

}

Это часть runat="server", которая заставляет страницу .aspx обрабатывать элемент и создавать соответствующий объект на стороне сервера.Если компонент не запущен на сервере, то он не добавляется в иерархию элементов управления страницы.

Другие советы

var v = this.Form.Имя тега;//возвращает имя формы, которая создается как runat .

Конечно, если он не создан как runat, то ваш исходный код все равно не будет выполняться...

Когда вы кодируете на C # или Visual Basic на кодовой странице, у вас не будет доступа к объекту, для которого не установлен параметр runat=server.

Вы можете легко получить доступ ко всем элементам управления со страницы, используя страницу me.controls или что-то в этом роде (я не знаю точного кода, но он близок к этому) и проверить тип элемента управления, чтобы получить форму.

Зачем тебе нужно это знать?Если страница не имеет формы runat =server, ее нельзя использовать в качестве серверной страницы.

Вы сможете получить доступ к форме из codebehind:

Response.Write(form1.Name);

Без runat="server" вы бы просто получили ошибку компилятора.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top