我有一个写在ASP.NET MVC 5
框架顶部的应用程序。对于一个页面,我使用这个非常棒的jQuery-QueryBuilder插件让用户创建过滤器来缩小数据集的结果范围。
当用户“通过单击提交按钮”提交表单时,我想调用由jQuery-QueryBuilder提供的函数builder.queryBuilder('getRules')
,该函数返回并且需要将对象发送到服务器。我不希望请求以字符串形式发送。另外,我不想将其作为ajax
请求发送。
这就是我所做的。以下代码无效。当服务器收到请求时,规则始终为空。
$('#submit-form').click(function (event) {
event.preventDefault();
var btn = $(this);
var rules = builder.queryBuilder('getRules');
if (!$.isEmptyObject(rules)) {
$('#QueryBuilder_Rules').val(rules);
btn.closest('form').submit();
}
});
我尝试使用AJAX
将发布请求发送到服务器,如下面的代码所示。下面的代码运行正常。但是,我不想使用AJAX,我想使用常规表单发布请求做同样的事情
$('#submit-form').click(function (event) {
event.preventDefault();
var btn = $(this);
var rules = builder.queryBuilder('getRules');
if (!$.isEmptyObject(rules)) {
$.ajax({
type: "POST",
url: url,
data: {Rules: rules}
});
}
});
如何使用标准发布请求将rules
对象作为对象而不是字符串正确地发送到服务器?
答案 0 :(得分:0)
使用Ajax有什么问题?
您可以考虑执行以下操作:
$.ajax({
type: "POST",
url: url,
data: JSON.stringify({Rules: rules}),
dataType: "json",
contentType: "application/json",
success: function (json) {
}
[HTTPPost]
public void Rules(YourClass[] array){...}