JQuery getJSON in MVC

JQuery getJSON in MVC

本文关键字:MVC in getJSON JQuery      更新时间:2023-09-26

我有以下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/