如何判断表单runat = server是否已设置?

时间:2009-09-25 02:03:04

标签: asp.net forms runat

在编写Asp.Net页面时,通常在aspx中添加一个runat属性:

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

是否有可能在后面的代码中告诉用户是否没有这样做,即他们只是这样做:

<form id="form1">

这里表单的id为“form1”但在我的情况下我不知道这个。像这样的代码背后是我正在寻找的:

if(Page.HasForm)
{
}

4 个答案:

答案 0 :(得分:2)

每个.aspx页面上只能有一个带有“runat = server”的表单标记。您所要做的就是检查Page.Form是否为null。如果它为null,则表示没有标记为runat server的表单。

if (Page.Form != null)
{

}

这是runat =“server”部分,它使.aspx页面处理一个元素并在服务器端创建一个相应的对象。如果组件未在服务器上运行,则它不会添加到页面的控件层次结构中。

答案 1 :(得分:0)

var v = this.Form.TagName; //获取作为runat的表单名称。

当然,如果它没有作为runat使用,那么你的代码无论如何都不会运行......

答案 2 :(得分:0)

在代码页中使用C#或Visual Basic进行编码时,您将无法访问未设置runat = server选项的对象。

您可以使用me.controls页面或类似的东西轻松访问页面中的所有控件(我不知道确切的代码,但它接近于此)并检查控件的类型以获取表单

为什么你需要知道这个?如果页面没有runat = server表单,则它实际上不能用作服务器页面。

答案 3 :(得分:0)

您可以从代码隐藏中访问该表单:

Response.Write(form1.Name);

如果没有runat =“server”,你只会遇到编译器错误。