在页面</form>中使用多个<form>标记时发布的表单数据不正确

时间:2014-06-30 12:28:28

标签: html asp.net forms twitter-bootstrap postback

我有一个使用Bootstrap模式的页面。在此页面的第一次加载时,将显示一个Bootstrap模式弹出窗口,它是一个正在加载的远程aspx页面并要求订阅。这只显示一次,一旦关闭,它将在未来30天内显示。

在父页面上,我有一个 AutoPostBack 设置为true的下拉列表。

问题是当第一次加载和关闭弹出窗口并且我更改下拉列表时,表单将被发布到弹出窗口中加载的页面的操作,而不是发布控件所属的窗体。 HTML是这样的:

    <form action="mypage.aspx">
    <asp:DropDownList runat="server" ViewStateMode="Enabled" ID="drpItems" AutoPostBack="True" CssClass="form-control"
                            OnSelectedIndexChanged="drpItems_SelectedIndexChanged">
                            <asp:ListItem Text="Item1" Value="1" />
                            <asp:ListItem Value="2">Item2</asp:ListItem>
                        </asp:DropDownList>
    </form>


    <div id="subscriptionModal" class="modal fade subscriptionPopupWrapper" tabindex="-1" aria-hidden="true" data-replace="true" data-focus-on="input:first">
        <div class="modal-dialog">
            <div class="modal-content" id="subscriptionModalContent">
                <form action="popup.aspx">
                 ----- Popup page content loaded dynamically -----
                </form>
            </div>
        </div>
    </div>

#subscriptionModalContent div中的表格被远程加载并显示为模态。 关闭此模式窗体时,一旦 #drpItems 更改,自动回发事件将触发并发布附加“/popup.aspx”网址的页面,而不是将页面发布到“mypage”。 ASPX”。

有人可以帮我解决这个问题吗? 任何建议或帮助都非常感谢。

1 个答案:

答案 0 :(得分:1)

Asp.net webforms通常不能在同一页面上使用多个表单。

虽然只有其中一个标有runat=server,但它可以正常工作。