Javascript AngularJS http发布和删除数据

Javascript AngularJS http发布和删除数据,javascript,c#,angularjs,Javascript,C#,Angularjs,在这里使用angularjs和c#webapi 我正在通过我的json数组从angularjs调用我的webapi Angularjs代码: factory.delete = function (json) { var url = 'myUrl'; return $http.post(url, json).then(function (res) { return res; }, function (err) {

在这里使用angularjs和c#webapi

我正在通过我的json数组从angularjs调用我的webapi

Angularjs代码:

    factory.delete  = function (json) {
    var url = 'myUrl';
    return $http.post(url, json).then(function (res) {
        return res;
    }, function (err) {            
        throw err;
    });
   }
C#Api:

[HttpPost(“数据/删除”)]
公共异步任务DeleteData([FromBody]列表
(吉桑达)
{
//循环使用json并在此处删除
}
是正确的删除方法,我在这里使用的是post而不是httpdelete。上面的方法很有效

我尝试将http delete用作:

 factory.delete  = function (ids) {
    var url = 'myUrl';
    return $http.delete(url, ids).then(function (res) {
        return res;
    }, function (err) {            
        throw err;
    });
   }

   [HttpDelete("data/{ids}/delete")]
    public async Task<IActionResult> DeleteData(string ids)
    {

       //here ids is comma separated ids which I want to loop through and delete one by one

    }
factory.delete=函数(ID){
var url='myUrl';
返回$http.delete(url,id)。然后返回(函数(res){
返回res;
},函数(err){
犯错误;
});
}
[HttpDelete(“data/{ids}/delete”)]
公共异步任务DeleteData(字符串ID)
{
//这里的ID是逗号分隔的ID,我想循环并逐个删除
}
问题是api中的ids参数总是空的。不知道这里发生了什么


请提供任何输入。

这不是对您的问题的直接回答,但将帮助您调试您的问题。在API类中添加以下代码将更深入地了解到参数的json转换:

[HttpPost(“数据/删除”)]
公共异步任务DeleteData([FromBody]列表jsonData)
{
如果(!ModelState.IsValid)
{
var error=ModelState.Values
.SelectMany(x=>x.Errors)
.FirstOrDefault(x=>x.Exception!=null);
返回BADDREQUEST(错误!=null
?error.Exception.Message
:“JSON请求中的错误”);
}
//您的常规处理代码
}

请提供一个示例json负载以及UserEntity类的内容。由于这两个参数是相互依赖的,这里的不匹配将导致参数值为null。@carlos我的api在单独的.net核心项目中,我没有在那里获取ModelState。正如我在HttpPost的帖子中所提到的,它的工作很好。我可以在api控制器中很好地恢复json。然后我可以循环使用该json,并删除数据。我的问题是,这是正确的删除方式吗?我的意思是使用HTTPPOST而不是使用HTTPDELETE。现在来看看HttpDelete,我想用HttpDelete代替HttpPost,只发送Id,参数Id总是空的。哦,很抱歉没有理解。我实际上会使用[HttpDelete]选项。你怎么称呼这个?您是否在REST客户机中选择了“DELETE”方法,然后使用这样的URLhttp://.../api/data/123/deleteI 已经在我的帖子中发布了删除的代码。我正在使用angularjs调用我的API。在我看来,$http.delete应该像这样调用:$http.delete('https:///api/data/“+ids+”/delete”);卡洛,我已经在做了。看来还有其他问题。
 factory.delete  = function (ids) {
    var url = 'myUrl';
    return $http.delete(url, ids).then(function (res) {
        return res;
    }, function (err) {            
        throw err;
    });
   }

   [HttpDelete("data/{ids}/delete")]
    public async Task<IActionResult> DeleteData(string ids)
    {

       //here ids is comma separated ids which I want to loop through and delete one by one

    }