我已将 Asp.net MVC 与 Sharepoint 站点集成。它工作得很好。但我也在使用默认的 Sharepoint 母版页(~masterurl/default.master
即)。问题是这个特定的母版页将整个页面包裹在一个form
元素中,而所有 Sharepoint 页面只是普通的 Asp.net WebForm 页面。
我的 MVC 内容应该有它自己的form
和我想提交给服务器的输入元素。Ajax 调用显然没有那么大的问题。$("form").serializeArray()
如果我保留原始form
元素,我将无法使用。但尽管如此,正常的回发还是有问题的,因为提交事件上有 WebForm 功能,它们会向服务器发送太多数据。
我将使用普通回发以及 Ajax 回发。主要问题是正常的回发。
所以我有两种可能都应该运行$(document).ready()
:
- 删除表单元素并保持所有其他内容不变。在 jQuery 中,它可能意味着在
form
元素前面加上 adiv
,将其内容移动到这个 div,然后删除form
。 - 直接将
form
元素更改为div
. 就浏览器处理而言,这可能会更快,但我不知道该怎么做。
因此,如果有人可以详细说明 2. 的解决方案,并就这两种可能的解决方案提供一些输入:应该做哪一个以及为什么。
编辑
还有第三种可能。我可以根据需要创建我的输入元素,但将它们包含在一个div
元素中。当用户想要提交我的表单(div
无论如何都不是表单)时,我可以:
- 动态调用
$("div.form").serializeArray()
- 创建一个表单元素
- 用序列化值填充它
- 将表单附加到正文
- 提交它。
看起来很乏味,但它可以工作。前两个解决方案似乎更简单。