Web 表单呈现问题

Web-Form Rendering Issue

我有一个传统的用户控件,我有以下结构:

<asp:Content id="ContentBody" runat="server" ContentPlaceHolderId="MainContent">
    <Core:AccountApplication id="uxAccountApplication" runat="server" />
</asp>

在用户控件里面我有一个传统的:

<form id="AccountForm">
    <input type="text" id="txtCompany" name="Company" />
    <input type="submit" id="btnSubmit" />
</form>

当我调用$('#AccountForm').serialize();时出现问题请求总是空的,没有序列化。如果我执行 $('form').serialize(); 它会序列化,但它也会获取所有 Web 表单 ViewState 呈现。这需要一些可疑的方法来纠正。

有没有更好的解决方法?

ASP.NET 中不允许嵌套形式(参见 this question 示例)。

您的 <form id="AccountForm"> 元素将被 ASP.NET 删除(查看生成的 HTML 以确认这一点)。

在收到表示表单元素被移除的答复后,我进行了验证,确实是整个表单被移除了。所以我做了以下事情:

<div class="Application-Container">
     <!-- All my form inputs -->
</div>

把它们包装成一个容器,然后我用jQuery把容器包装成一个表格。

$('.Application-Container').wrap('<form id="AccountForm"></form>');

现在当您提交时,它会重新包装到表单中,然后我可以调用 $('#AccountForm').serialize() 它会正确地构建我的表单数据。