ASP NET MVC HttpDelete and Angular JS $http
ASP NET MVC HttpDelete and Angular JS $http
我想这样做:
$http.delete('/Category/Delete', { params: { categoryId: 30 } })
并在一个名为 Category
的控制器中执行操作:
[HttpDelete]
public async Task<CustomResult> Delete(int categoryId)
{
await this.categoryService.DeleteCategoryAsync(categoryId);
return this.Json(true);
}
我假设它会被调用,但我得到404
响应。
然后,我将操作结果转换为[HttpPost]
并执行以下操作:
$http.delete('/Category/Delete', { categoryId: 30 })
但我得到了500
回应。我不完全确定我应该在这里做什么。使用HttpDelete
时,我尝试从角度URL中删除删除操作。但这行不通。我不知所措...
我认为将参数作为查询字符串发送将起作用。尝试以下代码
$http.delete('../Category/Delete?categoryId='+30)
并在操作控制器中使用 [HttpDelete]
对此有两种解决方案。
首先,保持 Web API 原样并更改角度:
$http.delete('/Category/Delete/' + categoryId)
原因:WebApi 在路由表中有一个用于/Category/Delete/{categoryId:int}
的条目,这将使我们的路由需要具有/
和参数值。
其次,保持角度不变并更改 Web API:
[HttpDelete]
public async Task<CustomResult> Delete([FromUri] int categoryId)
{
await this.categoryService.DeleteCategoryAsync(categoryId);
return this.Json(true);
}
我在参数中添加了 [FromUri]
属性,这意味着 Web API 将尝试从 URI 中提取此参数,如下所示/Category/Delete?categoryId=30
相关文章:
- Angular js http get返回所有页面
- Acync JS HTTP请求通知请求
- Angular.js-$http.get-使用文件中的缓存
- Node.js HTTP/NET——连接和请求之间的区别
- Angular JS `$http`发送POST而不是GET
- Angular JS $http request?
- angular.js$http.post将数据发送到Rails4
- node.js http服务器并发问题
- "对象不是函数“;当将Node.js HTTP服务器对象传递给Socket.IO时
- Node.js http代理删除websocket请求
- 使用node.js http代理测量流量
- node.js http请求在5次请求后锁定
- angular js http get
- 节点 JS HTTP 请求不使用 http 请求
- Meteor.js HTTP.get 获取 JSON 引号并解析结果似乎包含一个回调函数
- Node JS http-proxy - 创建的 URL 存在问题
- 节点.js:HTTP 获取请求
- 如何使用本机节点 JS HTTP 库将图像写入缓冲区
- Angular Js $http.post 方法无法访问 Zend Framework 中的数据
- node.js http.get() throws: events.js:72 ECONNREFUSED