我想在导航栏上定义一个公共登录部分,该部分保存在母版页上。
我的问题是,asp.net不允许每页有多个标签runat =“server”。如何克服此问题,以便我可以在母版页(用户登录导航栏)和子页面上进行控制?
问题在于位于底部的按钮。我必须用form runat =“server”标签来包围它。但是我已经在子页面最底部的页面中有一个表单标记。
<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>
由于
答案 0 :(得分:1)
正如梅森所说,只需将表单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>
答案 1 :(得分:1)
如果您的设置会在表单中呈现表单,则不允许这样做。
如果可以: 重新设想标记,使表格并排 要么: 如果无法并排执行此操作,请尝试删除登录表单标记。 - 父表单标签将回发到同一页面:如果这是你想要的全部,它可能会发挥作用。
这是@mason建议