0

在编写 Asp.Net 页面时,通常会在 asp 中添加 runat 属性:

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

如果用户没有这样做,是否可以在后面的代码中判断出来,即他们只这样做了:

<form id="form1">

这里表单的 id 为“form1”,但就我而言,我不知道这一点。像这样的代码是我正在寻找的:

if(Page.HasForm)
{
}
4

4 回答 4

2

每个 .aspx 页面上只能有一个带有“runat=server”的表单标签。您所要做的就是检查 Page.Form 是否为空。如果它为空,那么没有任何表单被标记为运行服务器。

if (Page.Form != null)
{

}

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

于 2009-09-25T02:08:46.657 回答
0

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

当然,如果它不是作为 runat 的,那么你后面的代码无论如何都不会运行......

于 2009-09-25T02:30:04.030 回答
0

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

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

为什么你需要知道这一点?如果一个页面没有 runat=server 形式,它就不能真正用作服务器页面。

于 2009-09-25T02:32:20.280 回答
0

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

Response.Write(form1.Name);

如果没有 runat="server",您只会得到编译器错误。

于 2009-09-25T02:58:15.627 回答