父页面中的ASP.Net表单在子页面上

时间:2018-05-25 18:04:18

标签: asp.net winforms

我在ASP网站项目中定义了MasterPage。在那里,我有一个带搜索栏的顶栏:

<div class="top-bar">
  <asp:ContentPlaceHolder ID="ContentPlaceHolder_header" runat="server">
    <div class="header search">
      <asp:TextBox ID="txtSearch" runat="server" />
    </div>
  </asp:ContentPlaceHolder>
</div>

<!-- Body content. -->
<div id="content">
  <asp:ContentPlaceHolder ID="ContentPlaceHolder_BodyContent" runat="server" />
</div>

在单独的字段中,我有一个登录表单:

<asp:Content ID="Content1" ContentPlaceHolderID = "ContentPlaceHolder_BodyContent"
    runat="server">
    <form id="AuthenticationForm" class="login-register-form" method="POST" runat="server">
    </form> 
</asp:Content>

问题是我需要在登录页面上有一个表单,但我想在正文占位符中显示它。

我收到asp:TextBox应该在表单中的错误,但据我所知,在ASP中同时在同一页面中不能有多个表单。

1 个答案:

答案 0 :(得分:1)

ASP.Net WebForms被设计为每页只有一个表单,因此从登录页面中删除表单标签,并确保母版页包含表单标记内的所有控件:

<form>
  <div class="top-bar">
    <asp:ContentPlaceHolder ID="ContentPlaceHolder_header" runat="server">
      <div class="header search">
        <asp:TextBox ID="txtSearch" runat="server" />
      </div>
    </asp:ContentPlaceHolder>
  </div>

  <!-- Body content. -->
  <div id="content">
    <asp:ContentPlaceHolder ID="ContentPlaceHolder_BodyContent" runat="server" />
  </div>
</form>