母版页和嵌套表单问题

时间:2009-08-28 11:15:14

标签: asp.net

我有表格的主页(runat =“server”)。但是在嵌套页面中,我有2个表单。 首先是更改密码,第二个是提交用户数据... 两者都必须存在,并带有单独的提交按钮。

我尝试用表格标签附上相应的字段,但我收到的错误是不允许附上表格....我怎样才能实现目标?

谢谢!

5 个答案:

答案 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技术:

http://msdn.microsoft.com/en-us/library/ms178140.aspx

答案 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}}

通过这种方式,您可以解决问题