在编写 Asp.Net 页面时,通常会在 asp 中添加 runat 属性:
<form id="form1" runat="server">
如果用户没有这样做,是否可以在后面的代码中判断出来,即他们只这样做了:
<form id="form1">
这里表单的 id 为“form1”,但就我而言,我不知道这一点。像这样的代码是我正在寻找的:
if(Page.HasForm)
{
}
每个 .aspx 页面上只能有一个带有“runat=server”的表单标签。您所要做的就是检查 Page.Form 是否为空。如果它为空,那么没有任何表单被标记为运行服务器。
if (Page.Form != null)
{
}
正是 runat="server" 部分使 .aspx 页面处理一个元素并在服务器端创建相应的对象。如果组件未在服务器上运行,则不会将其添加到页面的控制层次结构中。
var v = this.Form.TagName; // 获取作为 runat 的表单的名称。
当然,如果它不是作为 runat 的,那么你后面的代码无论如何都不会运行......
在代码页中使用 C# 或 Visual Basic 编写代码时,您将无法访问未设置 runat=server 选项的对象。
您可以使用 me.controls 页面或类似的页面轻松访问页面中的所有控件(我不知道确切的代码,但它接近此)并检查控件的类型以获取表单。
为什么你需要知道这一点?如果一个页面没有 runat=server 形式,它就不能真正用作服务器页面。
您可以从代码隐藏中访问表单:
Response.Write(form1.Name);
如果没有 runat="server",您只会得到编译器错误。