JQuery Load无法将值传递给控制器

时间:2015-01-12 07:39:43

标签: jquery ajax asp.net-mvc-4

我试图通过ajax Load()将复杂对象传递给控制器​​,但是我在控制器上获取了一个空对象。

我已经看到了一些关于这个的问题,但是他们在codeIgniter上,我正在使用MVC.NET

这是我的代码:

$('#btnLoadMore').on('click', function () {
        dataObject.PageIndex = dataObject.PageIndex + 1;
        $("#viewPlaceHolder").load("/home/GetPagedData",
       { data: JSON.stringify(dataObject), contentType: 'application/json', type: 'post' });
    });

并且下面的代码位于搜索点击按钮上,工作正常。

$('#btnSubmit').on('click', function () {
        var startDate = $('#StartDate').val();
        var endDate = $('#EndDate').val();
        dataObject= {
            'UserId': 1,
            'PageIndex': pageIndex,
            'PageSize': pageSize,
            'StartDate': startDate,
            'EndDate': endDate
        };      
        $.ajax({
            url: '@Url.Action("GetPagedData", "Home")',
            contentType: 'application/json',
    type: 'post',
    cache: false,
    async: true,

    data: JSON.stringify(dataObject)
    ,
    success: function (result) {
        $('#pricing-table').html(result);
        window.location = "#pricing";

    }
    });
    });

1 个答案:

答案 0 :(得分:2)

来自jQuery Load article

  

如果数据作为对象提供,则使用POST方法;除此以外,   假设GET。

您可以在load方法中仅提供网址,数据,完整的回调参数。

所以你的代码应该是这样的:

$('#btnLoadMore').on('click', function () {
    dataObject.PageIndex = dataObject.PageIndex + 1;
    $("#viewPlaceHolder").load("@Url.Action("GetPagedData","Home")",
    dataObject);
});