当编码一个Asp.Net页时,通常在ASPX添加runat属性:

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

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

<form id="form1">

下面表格的ID为“form1的”,但在我的情况,我不知道这一点。后面像这样的代码是什么我要找:

if(Page.HasForm)
{
}
有帮助吗?

解决方案

您永远只能有每个.aspx页面中“RUNAT =服务器”上一个表单标签。所有您需要做的是检查是否Page.Form为空或不是。如果它为空,那么就没有形式已被标记为RUNAT服务器。

if (Page.Form != null)
{

}

这是RUNAT =“服务器”的一部分,使.aspx页处理的元素,创建在服务器侧上的相应的对象。如果一个组件没有在服务器上运行,那么它不会添加到页面的控件层次结构。

其他提示

变种V = this.Form.TagName; //获取被maked作为RUNAT形式的名称。

当然,如果它不是maked为RUNAT那么后面你的代码无论如何都不会跑......

当你在代码页C#或Visual Basic代码,您将无法访问该对象不具备RUNAT =服务器选项设置。

您可以轻松地访问所有的控制使用的me.controls页面或什么之类的(我不知道确切的代码,但它接近这一点)的网页,并检查控件的类型,以获得形式

为什么你需要知道的?如果页面不具有中用runat =服务器的形式,它不能真正被用作服务器的页面。

您会能够从代码隐藏访问的形式:

Response.Write(form1.Name);

如果没有RUNAT = “服务器”,你只希望得到一个编译错误。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top