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

Web API Complex type property always null

我有这本书class:

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.

为什么它总是空的?

不用JSON.stringify

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

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