我很难找到解决此问题的方法。 我的API控制器无法获取我发布的数组的内容,并且始终返回0元素。
public class Author
{
public int id { get; set; }
public int referenceId{ get; set; }
[Newtonsoft.Json.JsonIgnoreAttribute]
public virtual ICollection<AuthorBook> AuthorBooks { get; set; }
}
public class AuthorBook
{
public int authorId { get; set; }
public int bookId { get; set; }
}
[Route("api/authorBooks")]
[HttpPost]
public IList getAuthorBooks(Author author)
{
return author.AuthorBooks.ToList();
}
var auhtorItem =
{
"id": 8,
"referenceId" : 1 ,
"AuthorBooks": [{ authorId: 9, bookId : 23 }, { authorId: 9 , bookId : 25}]
};
return $.ajax({
url: booksUrl + "authorBooks",
type: 'POST',
data: JSON.stringify(auhtorItem ),
dataType: 'json',
contentType: 'application/json',
crossDomain: true,
cache: false
});
我能够获取id和referenceId值但是AuthorBooks为空且计数为0而不是2.
知道为什么吗?
答案 0 :(得分:3)
尝试从Newtonsoft.Json.JsonIgnoreAttribute
属性中删除AuthorBooks
属性,以便在JSON序列化和&amp ;;反序列化:
public virtual ICollection<AuthorBook> AuthorBooks { get; set; }
而不是
[Newtonsoft.Json.JsonIgnoreAttribute]
public virtual ICollection<AuthorBook> AuthorBooks { get; set; }
您可以阅读有关JsonIgnoreAttribute
及其示例的更多信息,了解其工作原理。