ajax get with nested json - 嵌套属性不会在控制器中绑定

时间:2014-01-16 14:41:17

标签: c# javascript jquery ajax json

当我通过 ajax GET 发送带有嵌套属性的json时,在控制器操作中,nestes对象属性(搜索)不会绑定。 另一方面,当我使用 Ajax POST 时,一切都正确绑定。

我在AJAX GET示例中做错了什么?

这是我的代码

var queryData = {
    startDate : 1361577600000,
    stopDate : 1388361600000,
    sortColumn : "videoviews",
    mediaId : "",
    startIndex : startIndex,
    count : count,
    search : searchStr,
    searching: {
        search1 : "jjj",
        search2 : "sss",
        search3 : "a"
    }
}; 

client1(在服务器上搜索已创建但未绑定):

 $.ajax({
    url: '/Query/TotalBrowsersDetails',
    type: 'GET',
    contentType: 'application/json',
    data: queryData,
    success: function (data, status, xhr) {
        console.log('ajax success');
    }
});

server1的:

[HttpGet]
public ActionResult TotalBrowsersDetails(QueryRequest queryRequest)
{
}

client2(工作正常):

 $.ajax({
    url: '/Query/TotalBrowsersDetails',
    type: 'POST',
    contentType: 'application/json',
    data: JSON.stringify(queryData),
    success: function (data, status, xhr) {
        console.log('ajax success ');
    }
});

服务器2:

[HttpPost]
public ActionResult TotalBrowsersDetails(QueryRequest queryRequest)
{
}

和模型

  public class QueryRequest
        {
            public string MediaId { get; set; }
            public string SortColumn { get; set; }
            public string Search { get; set; }
            public int StartIndex { get; set; }
            public int Count { get; set; }
            public long StartDate { get; set; }
            public long StopDate { get; set; }

            public SearchExtended Searching { get; set; }
        }

        public class SearchExtended
        {
            public string Search1 { get; set; }
            public string Search2 { get; set; }
            public string Search3 { get; set; }
        }
    }

注意:当我使用

data: JSON.stringify(queryData)
在GET中,没有任何结合。

0 个答案:

没有答案