我有一个传统的用户控件,我有以下结构:
<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
呈现。这需要一些可疑的方法来纠正。
有更好的解决方法吗?
答案 0 :(得分:1)
ASP.NET中不允许使用嵌套表单(例如,请参阅this question)。
ASP.NET将删除您的<form id="AccountForm">
元素(查看生成的HTML以确认)。
答案 1 :(得分:0)
收到答案后,表示已删除表单元素,我进行了验证,确实删除了整个表单。所以我做了以下事情:
<div class="Application-Container">
<!-- All my form inputs -->
</div>
将它们包装到一个容器中,然后我使用jQuery将容器包装成一个表单。
$('.Application-Container').wrap('<form id="AccountForm"></form>');
现在,当您提交时,它将重新包装到表单中,然后我可以调用$('#AccountForm').serialize()
,它将正确构建我的表单数据。