POST复杂类型到jquery的Web API

时间:2014-03-12 12:12:35

标签: jquery asp.net-web-api

我有一个网络服务

[HttpPost]
[ActionName("ChangePassword")]
public string ChangePassword(Models.User value)
{
    return "";
}

User类的结构是

public class User
{
    public string Username { get; set; }    
    public string OldPassword { get; set; }    
    public string NewPassword { get; set; }
}

我从JQuery调用它

var value = { 'Username': name.val(), 'OldPassword': oldPassword.val(), 'NewPassword': newpassword.val() };
var b = JSON.stringify(value);
$.ajax({
    type: "POST",
    url: "http://tryURL/api/service/ChangePassword",
    async: true,
    cache: false,
    type: 'POST',
    data: JSON.stringify(value),
    dataType: "json",
    success: function (result) {
        alert(result);
    },
    error: function (jqXHR, exception) {
    }
});

现在,当我调试Web服务时,它为我提供了一个对象,但在对象中,所有属性都为null。我也尝试将[fromBody]放在参数中,但它不起作用。

2 个答案:

答案 0 :(得分:2)

尝试这样,它可能会起作用

var value = {};
value.Username=name.val();
//etc

在ajax中

data: JSON.stringify(value),//no change

然后删除var b = JSON.stringify(value);

答案 1 :(得分:0)

data: 'value=' + JSON.stringify(value)