【问题标题】:Server-side form tag master page服务器端表单标记母版页
【发布时间】:2016-12-03 22:34:20
【问题描述】:

我想在导航栏上定义一个通用登录部分,该部分保存在母版页上。

我的问题是,asp.net 不允许每个页面有多个标签 runat = "server"。如何克服这个问题,以便我可以在母版页(导航栏中的用户登录)和子页上进行控制?

问题出在底部的按钮上。我必须用 form runat="server" 标签包围它。但是我在子页面的最底部页面中已经有 1 个表单标签。

   <ul class="nav navbar-nav navbar-right">
            <li><a href="SignUp.aspx">Sign Up to the Service</a></li>
            <li class="dropdown">
              <a href="#" class="glyphicon glyphicon-user" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> Login<span class="caret"></span></a>
              <ul class="dropdown-menu" id="dropdownlogin">
                <div class="form-group">
                  <label for="usr" class="userlogininfo">Username</label>
                  <input type="text" class="form-control" id="usr"/> 
                </div>
                <div class="form-group">
                  <label for="pwd" class="userlogininfo">Password</label>
                  <input type="password" class="form-control" id="pwd"/>
                </div>
                <li role="separator" class="divider"></li>
                <a class="btn btn-primary btn-block" href="LoggedHome.aspx" role="button">Go</a>

                <asp:Button CssClass="btn btn-primary btn-block" ID="btnLogin" Text="Vai" runat="server" />

              </ul>
            </li>
          </ul>
        </div><!-- /.navbar-collapse -->
      </div><!-- /.container-fluid -->
    </nav>


<form id="form1" runat="server">
<div>
    <asp:ContentPlaceHolder id="body" runat="server">

    </asp:ContentPlaceHolder>
</div>
</form>

谢谢

【问题讨论】:

  • 您可以从您的母版页和登录控制中发布一个 sn-p 吗?以及各个回发处理程序的骨架?
  • 为什么不直接将表单放在母版页中?只需一张表格。
  • @brianchandley 用我的母版页的 sn-p 更新了问题

标签: asp.net visual-studio


【解决方案1】:

如果您的设置会在表单中呈现表单,则不允许这样做。

如果可以的话: 重新想象标记,使表单并排 或者: 如果并排这是不可能的,请尝试简单地删除登录表单标签。 - 父表单标签将回发到同一页面:如果这就是你想要的,它可能会成功。

这是@mason 的建议

【讨论】:

    【解决方案2】:

    正如梅森所说,只需将表单 runat="server" 标记放在包含所有控件的母版页中, 因此您可以在主页面或子页面和控件中的任何位置添加服务器控件

    <form id="form1" runat="server">
       <ul class="nav navbar-nav navbar-right">
    
                 <snip>....</snip>
    </ul>
    <div>
        <asp:ContentPlaceHolder id="body" runat="server">
    
        </asp:ContentPlaceHolder>
    </div>
    </form>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-10
      • 1970-01-01
      • 2014-02-02
      • 2015-06-28
      • 1970-01-01
      • 2016-06-20
      • 1970-01-01
      • 2019-12-30
      相关资源
      最近更新 更多