ChangePassword 控件忽略自定义模板并呈现默认值

ChangePassword Control Ignores Custom Template and Renders Default

在一些旧代码中,我最近遇到了一个呈现异常的 ChangePassword 控件。尽管有一个 bootstrap 布局,它在一个 table 内渲染,根本没有任何布局。

<asp:ChangePassword
    ID="ChangePassword3"
    runat="server">
    <ChangePasswordTemplate>
        <div class="form-row">
            <div class="col-sm-6">
                <asp:Label ID="Label1" runat="server" AssociatedControlID="CurrentPassword">Current Password:</asp:Label>
            </div>
            <div class="col-sm-6">
                <asp:TextBox ID="CurrentPassword" runat="server" TextMode="Password" />
            </div>
        </div>
        <div class="form-row">
            <div class="col-sm-6">
                <asp:Label ID="NewPasswordLabel" runat="server" AssociatedControlID="NewPassword">New Password:</asp:Label>
            </div>
            <div class="col-sm-6">
                <asp:TextBox ID="NewPassword" runat="server" TextMode="Password" />
                <%=TestMessage%>
            </div>
        </div>
        <div class="form-row">
            <div class="col-sm-6">
                <asp:Label ID="ConfirmNewPasswordLabel" runat="server" AssociatedControlID="ConfirmNewPassword">Confirm New Password:</asp:Label>
            </div>
            <div class="col-sm-6">
                <asp:TextBox ID="ConfirmNewPassword" runat="server" TextMode="Password"></asp:TextBox>
            </div>
        </div>
    </ChangePasswordTemplate>
</asp:ChangePassword>

为什么渲染不正确?

事实证明,如果不破坏它,就无法在该模板中使用代码呈现块。然而,它在没有任何错误指示的情况下静静地中断,然后恢复为默认渲染。删除以下行解决了问题。

<%=TestMessage%>