我正在使用母版页,当我运行此页面时,它显示以下错误消息:
一个页面只能有一个服务器端表单标记
我该如何解决这个问题?
答案 0 :(得分:17)
我认为你确实喜欢这样:
<asp:Content ID="Content2" ContentPlaceHolderID="MasterContent" runat="server">
<form id="form1" runat="server">
</form>
</asp:Content>
不需要表单标记。因为您在母版页中已经有相同的标记。
所以你只需删除它就可以了。
答案 1 :(得分:9)
听起来你在主页面和页面中都有一个表单标签,它会抛出错误。
你只能有一个。
答案 2 :(得分:4)
您的网页是否包含这些
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1"
Runat="Server">
</asp:content>
标签,这些都是你的控件吗?你应该只有表格 MasterPage中的标签。
以下是我的一些 理解和建议:
Html元素可以放在html页面的主体和html页面中 支持多个元素,但不能嵌套每个元素 另外,你可以从W3C html中找到详细的描述 规格:
http://www.w3.org/MarkUp/html3/forms.html
对于ASP.NET Web表单页面,它基于单个服务器端表单 包含其中所有控件的元素,所以通常我们不会 建议我们放置多个元素。但是,这仍然是 在ASP.NET页面(母版页)支持,我认为你的问题 母版页应该由不受支持的嵌套元素引起,并且 同一级别的多个应该没问题。 e.g:
此外,如果你想通过多种形式做什么只是让我们的 页面发布到多个页面,我认为你可以考虑使用新的 ASP.NET 2.0中跨页面发布的功能。这可以帮助我们使用按钮 控件回发到不同的页面而不打开多个表单 页面:
答案 3 :(得分:3)
仅使用一个服务器端表单标记。
检查您的母版页<form runat="server">
- 应该只有一个。
为什么你需要不止一个?
答案 4 :(得分:0)
有时当您渲染当前页面时,如下面的代码所示将生成相同的错误
StringWriter str_wrt = new StringWriter();
HtmlTextWriter html_wrt = new HtmlTextWriter(str_wrt);
Page.RenderControl(html_wrt);
String HTML = str_wrt.ToString();
那么我们如何排序呢?
答案 5 :(得分:0)
请从“ form”标签中删除“ runat =“ server”“,它将完全起作用。