登录控件不会呈现布局模板下的HTML,它只呈现服务器端控件,以下是标记:
<asp:Login ID="Login11" EnableTheming="false" runat="server" MembershipProvider="SqlProvider"
OnLoginError="Login11_LoginError" LoginButtonType="Link">
<LayoutTemplate>
<div class="login-box">
<div>
<table cellpadding="10" cellspacing="0">
<tr>
<td>
User name:
</td>
<td>
<asp:TextBox ID="UserName" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>
Password:
</td>
<td>
<asp:TextBox ID="Password" runat="server" TextMode="Password"></asp:TextBox>
</td>
</tr>
<tr>
<td>
</td>
<td>
<a href="<%=Util.BaseUrl %>Pages/Account/ForgotPassword.aspx">Forgot Password?</a>
</td>
</tr>
<tr>
<td colspan="2">
<asp:CheckBox ID="RememberMe" runat="server" Text="Remember my password"></asp:CheckBox>
</td>
</tr>
</table>
</div>
<div>
<asp:LinkButton ID="LoginBtn" CommandName="Login" runat="server" CssClass="login-btn">Login</asp:LinkButton>
</div>
<div>
<asp:Literal ID="FailureText" runat="server"></asp:Literal>
</div>
</div>
</LayoutTemplate>
</asp:Login>
输出结果为:
<input name="ctl00$ContentPlaceHolder1$Login11$Password" id="ctl00_ContentPlaceHolder1_Login11_Password" type="password">
<input id="ctl00_ContentPlaceHolder1_Login11_RememberMe" name="ctl00$ContentPlaceHolder1$Login11$RememberMe" type="checkbox">
<label for="ctl00_ContentPlaceHolder1_Login11_RememberMe">Remember my password</label>
<a id="ctl00_ContentPlaceHolder1_Login11_LoginBtn" class="login-btn" href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$Login11$LoginBtn','')">Login</a>
为什么会发生这种情况?!
EnableTheming
设置为true
,会发生什么? - balexandre