Web Api动态对象没有绑定

时间:2013-11-01 19:27:24

标签: c# jquery asp.net-web-api dynamicobject

我正在尝试向dynamic发送object ApiController。在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;
}

知道我在这里做错了吗?

1 个答案:

答案 0 :(得分: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;
}