JQuery getJSON in MVC
本文关键字:MVC in getJSON JQuery | 更新日期: 2023-09-27 18:12:50
我有以下JSon调用,我想调用一个方法在控制器&接收JSon对象来更新局部视图:
<script type="text/javascript">
function DoAjaxUpdate(btnClicked) {
btnClicked = $(btnClicked);
var $form = btnClicked.parents('form');
var url = '@Url.Action("Remove")';
$.getJSON(
url,
$form.serialize(),
function () {
if (data.htmlPartialView != null) {
return $("#divPartialView").load(obj.htmlPartialView);
}
});
return false;
}
</script>
不幸的是,这不能正确传递数据,而是将其作为查询字符串附加到URL,例如:http://www.myLink.com/MyController/Remove?dataID=1359&dataMember=1
请帮助。由于
这就是$("form").serialize()
的情况。它将序列化表单上的所有内容,并将其放在查询字符串中。
只要您的Remove
操作方法采用原始视图上的模型实例,那么它将使用查询字符串中的值进行转换。
发送它作为JSON,你必须使用JSON.stringify()
:
JSON.stringify($form.serialize())
回调需求参数,如下所示:
$.getJSON(
url,
$form.serialize(),
function (obj) {
if (obj.htmlPartialView) {
$("#divPartialView").load(obj.htmlPartialView);
}
});
顺便说一下,if (obj.htmlPartialView)与if (data. view)相同。htmlPartialView = null)您正在调用getJSON
,它将数据发送为使用查询字符串的GET请求。如果您想使用POST方法,请使用(来自jQuery站点):
$.post(url, data, function(data) {
});
或
$.ajax({
type: "POST",
url: url,
data: data,
success: success,
dataType: dataType
});
更多信息:http://api.jquery.com/jQuery.post/