Knockout.js 将请求放在带有集合的WebApi上
我在一个ASP.NETMVC5项目中工作,其中包含WebApi和Knockout.js,我试图在保存到页面上时替换集合。首先,对于在我的WebApiController中工作的简单内容,请更新一项:Knockout.js 将请求放在带有集合的WebApi上,knockout.js,asp.net-web-api,Knockout.js,Asp.net Web Api,我在一个ASP.NETMVC5项目中工作,其中包含WebApi和Knockout.js,我试图在保存到页面上时替换集合。首先,对于在我的WebApiController中工作的简单内容,请更新一项: public IHttpActionResult Put(FooObject obj, CancellationToken cancellationToken) { // obj is of type FooObject and has the goods I need ... } 但是,
public IHttpActionResult Put(FooObject obj, CancellationToken cancellationToken) {
// obj is of type FooObject and has the goods I need
...
}
但是,这不起作用:
public IHttpActionResult Put(IEnumerable<FooObject> listOfObj, CancellationToken cancellationToken) {
// nope; listOfObj is empty, including trying List<> instead of IEnumerable<>
...
}
我的直觉是我缺少了一些基本的WebApi东西,但我不确定那是什么。有什么想法吗?我想您必须用frombody属性标记集合参数
public IHttpActionResult Put([FromBody]IEnumerable<FooObject> listOfObj, CancellationToken cancellationToken) {
// nope; listOfObj is empty, including trying List<> instead of IEnumerable<>
...
}
您要发送的数据中有什么,是对象还是数组?正如Gabe所建议的,尝试一个包含ObjectsHanks数组的对象。我尝试了“[FromBody],但没有做AJAX更改部分。我将尝试一下。实际上不需要[FromBody]属性,但ajax修改工作正常。谢谢
public IHttpActionResult Put([FromBody]IEnumerable<FooObject> listOfObj, CancellationToken cancellationToken) {
// nope; listOfObj is empty, including trying List<> instead of IEnumerable<>
...
}
draggable_service.prototype.update = function (data) {
var self = this;
return $.ajax({
data: {'': data},
type: "PUT",
url: self.url
});
};