首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在asp.net web api中使用什么路由从对象的列表中删除项目

在asp.net web api中使用什么路由从对象的列表中删除项目
EN

Stack Overflow用户
提问于 2012-07-13 09:39:16
回答 1查看 2.1K关注 0票数 1

我在服务器上有一个名为foo的实体,它有一个分配给它的条形图列表。我希望能够从foo中删除单个条形图。

但是,我不想更新客户端并发送整个foo,因为foo是一个很大的对象,所以如果我只是从foo中删除一个bar,那么每次发送的Json都会很多。

我只想向下发送bar,然后将其从foo实体中删除。

我的班级是foo

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Foo
{
    public Foo()
    {
        Bars = new Collection<Bar>();    
    }

    public ICollection<Bar> Bars { get; set; }
}

我已经绘制了路线

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
routes.MapHttpRoute(
    name: "fooBarRoute",
    routeTemplate: "api/foo/{fooId}/bar/{barId}",
    defaults: new { controller = "Bar", action = "RemoveBarFromFoo" }
    );

通过javascript (coffeescript)发送请求

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$.ajax(
url: api/foo/1/bar/1,
data: jsonData,
cache: false,
type: 'XXX',
....

我只是不确定使用哪条路线,我试过PUT,但它不喜欢它,我可能做错了。我真的不确定在这种情况下我应该使用什么路线。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class BarController : ApiController
{
    public void RemoveBarFromFoo(int fooId, Bar bar)
    {    
        // get the foo from the db and then remove the bar from the list and save
    }
}

我的问题是:我应该使用什么方法来实现这个目标?或者,如果我走错了路,我该怎么办?

谢谢,尼尔

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-13 09:47:20

为了遵循标准的RESTful约定,您正在使用的HTTP谓词必须是DELETE,操作名称必须是Delete。此外,此操作不应将Bar对象作为参数。只发送barId,因为这是客户端发送的所有内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class BarController : ApiController
{
    public void Delete(int fooId, int barId)
    {    
        // get the foo from the db and then remove the bar from the list and save
    }
}

然后你会打电话给:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$.ajax({
    url: 'api/foo/1/bar/1',
    type: 'DELETE',
    success: function(result) {

    }
});

现在,您可以从您的路由定义中删除操作,因为它是HTTP动词,指示应该调用哪个操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
routes.MapHttpRoute(
    name: "fooBarRoute",
    routeTemplate: "api/foo/{fooId}/bar/{barId}",
    defaults: new { controller = "Bar" }
);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11467897

复制
相关文章
IoC在ASP.NET Web API中的应用
控制反转(Inversion of Control,IoC),简单地说,就是应用本身不负责依赖对象的创建和维护,而交给一个外部容器来负责。这样控制权就由应用转移到了外部IoC容器,控制权就实现了所谓的
蒋金楠
2018/01/15
1.8K0
IoC在ASP.NET Web API中的应用
聊聊asp.net中Web Api的使用
扯淡     随着app应用的崛起,后端服务开发的也越来越多,除了很多优秀的nodejs框架之外,微软当然也会在这个方面提供更便捷的开发方式。这是微软一贯的作风,如果从开发的便捷性来说的话微软是当之无愧的老大哥,只是鱼和熊掌不能兼得,各种语法糖带来开发的便利势必会牺牲程序运行的性能,这是无可避免的,通用和效率永远是需要程序员去取舍的话题。扯淡到这就完了,下来就聊聊今天的主角web api,web api 是mvc4.0之后出现的一种技术吧,他的创建和带来的便利我就不介绍了。这边文章主要聊聊,我对web ap
磊哥
2018/05/08
1.5K0
Asp.Net Web API 2第八课——Web API 2中的属性路由
阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html
aehyok
2018/08/31
8920
Asp.Net Web API 2第八课——Web API 2中的属性路由
ASP.NET Web API中的Controller
虽然通过Visual Studio向导在ASP.NET Web API项目中创建的 Controller类型默认派生与抽象类型ApiController,但是ASP.NET Web API框架本身只要求它实现IHttpController接口即可,所以我们将其统称为HttpController。既然HttpController指的是所有实现了IHttpController接口的类型,我们自然得先来了解一下这个接口的定义。如下面的代码片断所示,在IHttpController接口中仅仅定义了唯一的方法Exec
蒋金楠
2018/01/15
1.6K0
ASP.NET Web API中的Controller
在 ASP.NET Core Web API 中处理 Patch 请求
在 ASP.NET Core Web API 中,由于 C# 是一种静态语言(dynamic 在此不表),当我们定义了一个类型用于接收 HTTP Patch 请求参数的时候,在 Action 中无法直接从实例中得知客户端提供了哪些参数。
郑子铭
2023/08/29
2490
在 ASP.NET Core Web API 中处理 Patch 请求
Python - 从字典列表中删除字典
字典是python的一个非常常用的功能,用于根据用户需要在其中存储数据。另一个典型的过程涉及编辑或操作此数据。要成为一名高效且快速的程序员,您必须弄清楚如何从字典列表中删除字典。有许多技术可以从词典列表中删除字典,本文将介绍这些技术。
很酷的站长
2023/08/11
2710
Python - 从字典列表中删除字典
ASP.NET Web API路由系统:Web Host下的URL路由
ASP.NET Web API提供了一个独立于执行环境的抽象化的HTTP请求处理管道,而ASP.NET Web API自身的路由系统也不依赖于ASP.NET路由系统,所以它可以采用不同的寄宿方式运行于不同的应用程序中。如果采用Web Host的方式将定义Web API寄宿于一个Web应用之中,其实最终的URL路由还是通过ASP.NET本身的路由系统完成的,那么两个路由系统之间是如何衔接在一起的呢?。 目录 一、HostedHttpRoute 二、HttpWebRoute
蒋金楠
2018/01/15
1.7K0
ASP.NET Web API编程——路由
路由过程大致分为三个阶段: 1)请求URI匹配已存在路由模板 2)选择控制器 3)选择操作 1匹配已存在的路由模板 路由模板 在WebApiConfig.Register方法中定义路由,例如模板默认生成的路由为: config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new
甜橙很酸
2018/04/17
1.8K0
ASP.NET Web API路由规则(二)
(注:至于为什么用MapHttpRoute而不是MapRoute;为什么用routeTemplate而不是用url我们再以后的章节介绍)
liulun
2022/05/09
5020
ASP.NET Web API路由规则(二)
如何从JavaScript对象中删除属性?
在使用 JavaScript 中的对象时,你可能会遇到需要从对象中完全删除属性的情况。为实现这一点可以有好几个选择:
疯狂的技术宅
2021/04/01
12.4K0
Visual Studio 2012 中的ASP.NET Web API
有的企业 Web 服务使用 SOAP 和 WS-*.*它们对许多事务性或复杂的方案来说很不错。然后还有更轻量级的RESTful web 服务或"Web API",它们使用 JSON,XML,展示了所有的好东西和HTTP 规范的稳定性。 WCF 过得好好的, ASP.NET 也如此,每种技术都有使用其的理由。正如这篇文章说得好, "SOAP的世界与HTTP 服务的世界是完全不同的。SOAP 允许我们将我们的服务所需的所有知识放在信息本身中",而"您可以使用 [Web API] 来创建只使用标准HTTP 概
张善友
2018/01/29
3.3K0
Visual Studio 2012 中的ASP.NET Web API
如何从 Python 列表中删除所有出现的元素?
在 Python 中,列表是一种非常常见且强大的数据类型。但有时候,我们需要从一个列表中删除特定元素,尤其是当这个元素出现多次时。本文将介绍如何使用简单而又有效的方法,从 Python 列表中删除所有出现的元素。
网络技术联盟站
2023/06/01
12.5K0
ASP.NET Core MVC中构建Web API
在ASP.NET CORE MVC中,Web API是其中一个功能子集,可以直接使用MVC的特性及路由等功能。 在成功构建 ASP.NET CORE MVC项目之后,选中解决方案,先填加一个API的文
码农阿宇
2018/04/18
8310
ASP.NET Core MVC中构建Web API
如何从 Python 中的字符串列表中删除特殊字符?
在进行字符串处理和文本分析时,有时我们需要从字符串列表中删除特殊字符。特殊字符可能是空格、标点符号、换行符等,在某些情况下它们可能干扰我们的文本处理或分析任务。Python 提供了多种方法来删除字符串列表中的特殊字符。本文将详细介绍在 Python 中删除字符串列表中特殊字符的几种常用方法,并提供示例代码帮助你理解和应用这些方法。
网络技术联盟站
2023/06/01
8.4K0
ASP.NET Web API路由系统:路由系统的几个核心类型
虽然ASP.NET Web API框架采用与ASP.NET MVC框架类似的管道式设计,但是ASP.NET Web API管道的核心部分(定义在程序集System.Web.Http.dll中)已经移除了对System.Web.dll程序集的依赖,实现在ASP.NET Web API框架中的URL路由系统亦是如此。也就是说,ASP.NET Web API核心框架的URL路由系统与ASP.NET本身的路由系统是相对独立的。但是当我们采用基于Web Host的方式(定义在程序集System.Web.Http.We
蒋金楠
2018/01/15
9.6K0
ASP.NET Web API路由系统:路由系统的几个核心类型
【说站】python迭代中删除列表项目
2、通过分配给slice somelist[:],改变现有列表以仅包含想要的项目。
很酷的站长
2022/11/24
1.6K0
【说站】python迭代中删除列表项目
Asp.Net Web API 2第五课——Web API路由
    Asp.Net Web API第一课——入门 http://www.cnblogs.com/aehyok/p/3432158.html
aehyok
2018/08/31
1.2K0
Asp.Net Web API 2第五课——Web API路由
ASP.NET Web API 2中的错误处理
前几天在webapi项目中遇到一个问题:Controller构造函数中抛出异常时全局过滤器捕获不到,于是网搜一把写下这篇博客作为总结。
雪飞鸿
2018/09/05
1.8K0
点击加载更多

相似问题

在asp.net Web API中定义路由

10

从对象列表的列表中删除某个项目时,该项目也会从其他对象的列表中删除

40

在ASP.NET Web API中映射HTTP路由

40

在ASP.NET Web API中从List<Claim>获取项目

138

ASP.NET核心Web API中的路由

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文