我试图传递一个int数组但我无法获得webapi方法中的值
var postData = { "deletedIds": deletedIds }; $.ajax({ type: "DELETE",traditional: true,dataType: 'json',contentType: 'application/json',cache: false,url: "/api/Management/Models",data: JSON.stringify(postData),success: ModelDeleted,error: ModelNotDeleted });
在apiController中:
[HttpDelete] public bool DeleteModel(int[] deletedIds) { return modelsRepository.DeleteModels(deletedIds); }
解决方法
你的代码看起来很不错.请定义“deletedIds”对象的结构.
@H_403_12@一个建议是使用
@H_403_12@新阵列()
@H_403_12@object初始化deletedIds属性并删除JSON.stringify().
@H_403_12@一个类似的问题问
here.
编辑
Web API支持以各种方式解析内容数据,但它不处理多个发布的内容值.您的问题的解决方案可能是创建一个具有int []类型属性的viewmodel.@H_403_12@像下面的代码,
public class Simpleviewmodel { public int[] deletedIds{ get; set; } } //Controller [HttpDelete] public bool DeleteModel(Simpleviewmodel deletedIds) { return modelsRepository.DeleteModels(deletedIds.deletedIds); }
并将其用作参数类型.