1

我正在尝试将 a 发送dynamic objectApiController. 在行上设置断点return null,我看到parameters总是null.

AJAX来电:

$(':checkbox').click(function (event) {
    var values = $('input[type="checkbox"]:checked').map(function () {
        return $(this).val();
    }).toArray();

    var product = {
        Name: $('#name2').val(),
        Price: $('#price2').val(),
        Category: $('#category2').val()
    };

    $.ajax({
        type: 'GET',
        url: '/api/filter',
        data: JSON.stringify( product ),
        contentType: 'application/json',

        success: function (data) {
            //alert("succeeded");
        },
        error: function (err, data) {
            alert("Error " + err.responseText);
        }
    });

});

Controller: _

[HttpGet]
public IEnumerable<Products> GetAllProducts(dynamic parameters)
{
    return null;
}

知道我在这里做错了什么吗?

4

1 回答 1

2

编辑:- 将原始答案从 GET 更改为 POST。

假设您发布的代码在FilterController中,GetAll方法通常不带参数,用于获取所有产品。如果你想在那里填充你的动态,你应该将它更改为像这样的 POST..

$.ajax({
        type: 'POST',
        url: '/api/filter/GetAllProducts,
        data: JSON.stringify( product ),
        contentType: 'application/json',

        success: function (data) {
            //alert("succeeded");
        },
        error: function (err, data) {
            alert("Error " + err.responseText);
        }
    });

然后用 HttpPost 属性装饰你的控制器

[HttpPost]
public IEnumerable<Products> GetAllProducts(dynamic parameters)
{
    return null;
}
于 2013-11-01T19:38:01.437 回答