Web API复杂类型属性始终为null

时间:2015-02-12 16:55:23

标签: jquery asp.net-web-api

我有这本书课:

public class Book
{
    public string Name { get; set; }
}

本书ApiController带有使用复杂类型参数的post方法:

[RoutePrefix("api/book")]
public class BookController : ApiController
{
    [Route("create")]
    public Book CreateBook([FromBody]Book book)
    {
        // Persist the book
        return book;
    }
}

然后我使用这个jQuery代码来测试我的Post方法:

var data = {"name":"test"};

$.ajax({
    type: "POST",
    url: "api/book/create",
    data: JSON.stringify(data),
    dataType: "json",
    success: function (result) {
        alert(result);
    }
});

运行jQuery时,触发了 CreaetBook 操作中的断点,但Book.Name属性为null。我希望它是test

为什么它总是为空?

1 个答案:

答案 0 :(得分:2)

尝试不使用JSON.stringify

var data = {"name":"test"};

$.ajax({
    type: "POST",
    url: "api/book/create",
    data: data,
    dataType: "json",
    success: function (result) {
        alert(result);
    }
});