我有表格的主页(runat =“server”)。但是在嵌套页面中,我有2个表单。 首先是更改密码,第二个是提交用户数据... 两者都必须存在,并带有单独的提交按钮。
我尝试用表格标签附上相应的字段,但我收到的错误是不允许附上表格....我怎样才能实现目标?
谢谢!
答案 0 :(得分:4)
ASP.NET仅支持每页一个表单(它模拟桌面会话表单)。您可能需要的是将表单保留在母版页中,并为内容页面上的按钮提供2个Click处理程序。您可能还需要为控件和按钮指定ValidationGroup,以便在有一些验证器时它们不会发生干扰。
答案 1 :(得分:1)
由于您已经在母版页中形成,因此您将无法在嵌套页面中添加任何表单,每页只能有一个表单标记,
而不是在嵌套页面中创建两个不同的表单, 你不能创建单独的两个不同的div,表等
你在嵌套页面中采取什么样的力量
答案 2 :(得分:0)
你只能有一个<形式> ASPX页面中的标签。当您使用母版页时,它已经有一个< form runat =“server”>标签。你不能使用<形式>在嵌套页面中再次标记。您可以做的是在此标记的嵌套页面上添加您的内容。 < asp:Content ID =“Content1”ContentPlaceHolderID =“ContentPlaceHolder1”Runat =“Server”> < / asp:内容>
答案 3 :(得分:0)
您可以在webforms页面上拥有多个表单,但只有1个表单可以具有runat-“server”属性,而runat =“server”表单不能包含任何嵌套表单。一个可能适合您的选项:
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled</title>
</head>
<body>
<div id="header>
<h1>My Site</h1>
<form id="SearchForm" action="search.aspx" method="post">
<!--your search form html inputs (on server controls)-->
</form>
</div>
<!-- the standard webforms form used for server controls etc-->
<form id="form1" runat="server">
<asp:ContentPlaceHolder ID="SearchBody" runat="server">
</asp:ContentPlaceHolder>
</form>
</body>
</html>
您还可以查看PostBackUrl技术:
答案 4 :(得分:0)
只需在<form runat="server">
代码后的主页开头添加<body>
,然后在<asp:content></asp:content>
内添加<% master ... %>
<html>
<head> .... </head>
<body>
<form runat="server">
.
.
.
<div>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
</asp:Content>
</div>
.
.
.
</form>
</body>
</html>
。
实施例。 MyMasterPage.master页面
<% page ... %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:Button ID="testButton" runat="server" Text="Sample Button" Width="135px" />
</asp:Content>
Nester Page: MyPage.cs
{{1}}
通过这种方式,您可以解决问题