在编写Asp.Net页面时,通常在aspx中添加一个runat属性:
<form id="form1" runat="server">
是否有可能在后面的代码中告诉用户是否没有这样做,即他们只是这样做:
<form id="form1">
这里表单的id为“form1”但在我的情况下我不知道这个。像这样的代码背后是我正在寻找的:
if(Page.HasForm)
{
}
答案 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”,你只会遇到编译器错误。