页面只能有一个服务器端表单标签问题

时间:2013-11-04 04:51:07

标签: asp.net forms

我有一个像这样的母版

    <%@ Master Language="C#" MasterPageFile="~/masterpages/XmasShop.master" AutoEventWireup="true" %>
<asp:Content ContentPlaceHolderID="cphContents" runat="server">
    <asp:LoginView runat="server" ID="lview1">
        <LoggedInTemplate>
            <div class="confirmation-cantainer">
                <div class="confirm-01">
                    <form runat="server">
                        <umbraco:Macro Alias="[Xmas]ShopConfirm" runat="server"></umbraco:Macro>
                    </form>
                </div>
            </div>
        </LoggedInTemplate>
    </asp:LoginView>
</asp:Content>

<asp:Content ContentPlaceHolderID="cphAuthenticationPane" runat="server">
    <asp:LoginView runat="server" ID="lview12">
        <LoggedInTemplate>
            <form runat="server">
                <asp:LoginStatus ID="lslougout" runat="server" Style="float: right; color: #003263; text-decoration: none;" text="Logout"></asp:LoginStatus>
            </form>
        </LoggedInTemplate>
    </asp:LoginView>
</asp:Content>

你可以看到我有两个表单标签,但两个都是单独的而不是嵌套。还是我收到错误

A page can have only one server-side Form tag.

任何人都可以向我建议一个解决方案。当我尝试删除其中一个表单时,它会抛出一个错误元素必须在表单标记内,并且当我在上面添加表单错误时。

3 个答案:

答案 0 :(得分:1)

一种解决方案是将登录信息放在单独的页面上。您还可以考虑使用iframe。

答案 1 :(得分:1)

使用以下教程设置两个表单标签,并能够根据需要打开和关闭它们:

http://jerschneid.blogspot.com/2007/03/hide-form-tag-but-leave-content.html

答案 2 :(得分:0)

由于使用了多个

而发生此错误
<form runnat="server">

标签。 删除其中一个表单标记。

This would be more clear by visiting this link