我正在使用母版页,当我运行此页时,它显示以下错误消息:一个页面只能有一个服务器端表单标记我怎样才能解决这个问题?
njthzxwz1#
我觉得你是这样做的:
<asp:Content ID="Content2" ContentPlaceHolderID="MasterContent" runat="server"> <form id="form1" runat="server"> </form> </asp:Content>
不需要表单标记,因为母版页中已有相同的标记。所以你只要把它去掉它就能工作了。
vmdwslir2#
听起来像是母版页和引发错误的页中有一个form标记。你只能有一个。
kse8i1jr3#
您的页面包含这些内容吗
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> </asp:content>
标签,并且所有控件都在这些标签中吗?母版页中应该只有Form标签。以下是我的一些理解和建议:Html元素可以放在html页面的主体中,html页面也支持多个元素,但是它们不能相互嵌套,你可以从W3C html规范中找到详细的描述:
http://www.w3.org/MarkUp/html3/forms.html至于ASP.NET网页表单,它是基于一个服务器端的表单元素,其中包含了所有的控件,所以一般我们不建议我们把多个元素。但是,这仍然是支持在ASP.NET网页(母版页),我认为你的母版页的问题应该是由不支持嵌套元素引起的,多个在同一级别应该是可以的。例如:另外,如果你想通过多个表单做的只是让我们的页面发布到多个页面,我想你可以考虑使用ASP.NET 2.0中跨页面发布的新功能,这可以帮助我们使用按钮控件回发到不同的页面,而不在页面上有多个表单:
http://msdn2.microsoft.com/en-us/lib...39(VS.80).aspxhttp://msdn2.microsoft.com/en-us/lib...40(VS.80).aspx
mec1mxoz4#
只使用一个服务器端窗体标记。检查您的母版页是否有<form runat="server">-应该只有一个。为什么你需要一个以上?
<form runat="server">
jxct1oxe5#
有时,当您呈现当前页面时,如下所示,代码将生成相同的错误
StringWriter str_wrt = new StringWriter(); HtmlTextWriter html_wrt = new HtmlTextWriter(str_wrt); Page.RenderControl(html_wrt); String HTML = str_wrt.ToString();
那我们该怎么办呢?
x6492ojm6#
请删除“runat=“服务器”“从“表单”标签,然后它将明确工作。
sf6xfgos7#
如果要呈现页面,则需要调用Response.End()来防止呈现整个页面。
7条答案
按热度按时间njthzxwz1#
我觉得你是这样做的:
不需要表单标记,因为母版页中已有相同的标记。
所以你只要把它去掉它就能工作了。
vmdwslir2#
听起来像是母版页和引发错误的页中有一个form标记。
你只能有一个。
kse8i1jr3#
您的页面包含这些内容吗
标签,并且所有控件都在这些标签中吗?母版页中应该只有Form标签。
以下是我的一些理解和建议:
Html元素可以放在html页面的主体中,html页面也支持多个元素,但是它们不能相互嵌套,你可以从W3C html规范中找到详细的描述:
FORM元素
http://www.w3.org/MarkUp/html3/forms.html
至于ASP.NET网页表单,它是基于一个服务器端的表单元素,其中包含了所有的控件,所以一般我们不建议我们把多个元素。但是,这仍然是支持在ASP.NET网页(母版页),我认为你的母版页的问题应该是由不支持嵌套元素引起的,多个在同一级别应该是可以的。例如:
另外,如果你想通过多个表单做的只是让我们的页面发布到多个页面,我想你可以考虑使用ASP.NET 2.0中跨页面发布的新功能,这可以帮助我们使用按钮控件回发到不同的页面,而不在页面上有多个表单:
ASP.NET网页中的跨页投递
http://msdn2.microsoft.com/en-us/lib...39(VS.80).aspx
http://msdn2.microsoft.com/en-us/lib...40(VS.80).aspx
mec1mxoz4#
只使用一个服务器端窗体标记。
检查您的母版页是否有
<form runat="server">
-应该只有一个。为什么你需要一个以上?
jxct1oxe5#
有时,当您呈现当前页面时,如下所示,代码将生成相同的错误
那我们该怎么办呢?
x6492ojm6#
请删除“runat=“服务器”“从“表单”标签,然后它将明确工作。
sf6xfgos7#
如果要呈现页面,则需要调用Response.End()来防止呈现整个页面。