我已经将Asp.net MVC与Sharepoint网站集成在一起。它很棒。但我也使用默认的Sharepoint母版页(即~masterurl/default.master
)。问题是这个特定的母版页将整个页面包裹在form
元素中,而所有Sharepoint页面都只是普通的Asp.net WebForm页面。
我的MVC内容应该有自己的form
和我想要提交给服务器的输入元素。 Ajax调用显然不有问题。如果我保留原始$("form").serializeArray()
元素,则无法使用form
。但是正常的回发是有问题的,因为在提交事件上有WebForm功能,他们会向服务器发送太多数据。
我将使用正常的回发以及Ajax回发。主要问题是正常的回发。
所以我有两种可能性,它们应该在$(document).ready()
上运行:
form
元素添加到div
,将其内容移动到此div,然后删除form
。form
元素更改为div
。这在浏览器处理方面可能会更快,但我不知道该怎么做。因此,如果任何人都可以为2解决方案,并就这两种可能的解决方案提供一些意见:应该做哪一个以及为什么。
还有第三种可能性。我可以将我的输入元素创建为neede,但将它们包含在div
元素中。当用户想要提交我的表单时(div
不是表格)我可以:
$("div.form").serializeArray()
似乎单调乏味但可行。前两个解决方案似乎更简单。
答案 0 :(得分:1)
如果您通过$.ajax()
提交,我只需直接使用.serialize()
元素,就像这样:
$.ajax({
url: "Path/Action",
type: "post",
data: $("#someContainer :input").serialize(),
success: function(data) {
//do something
}
});
或更短的$.post()
版本:
$.post("Path/Action", $("#someContainer :input").serialize(), function(data) {
//do something
});
这不需要任何<form>
代或其他技巧,只需要普通的jQuery AJAX帖子(或GET
,无论需要什么)。