Web表单呈现问题

时间:2015-10-26 13:41:48

标签: c# jquery asp.net webforms

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

<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呈现。这需要一些可疑的方法来纠正。

有更好的解决方法吗?

2 个答案:

答案 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(),它将正确构建我的表单数据。