问题标签 [asp.net-web-api-routing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-mvc-4 - MVC4 Web-API - 需要路由映射帮助
我有一个名为的控制器
产品 和我有三个动作
- 产品:接受一个 int 返回一个模型(类)对象
- 类别:接受一个字符串返回模型(类)对象的数组
- 全部:无参数返回模型(类)对象的数组
我正在尝试的是以下映射
产品-> api/产品/产品/1
类别-> api / 产品 / 类别 / 酱汁
全部-> api/产品/全部
由于动作名称支持 URL 结构,所以我尝试了一条通用路线
其他一切正常,但是当我使用此http://localhost:2271/api/products/category/2
URL时出现以下错误
另一方面,这个 URL api/products/category/?cat=abc
&api/products/category?cat=abc
工作正常...... [cat 是我的接收参数名称]
帮助 !!!
c# - 是否可以使用 Web API .net 中的参数路由到操作?
是否有可能采取行动?
使 URL 看起来像“/api/Products/CategoryId/full/Name/ProductID/”
它调用该动作可能是因为属性是可选的,但属性参数始终为空。我什至尝试在请求正文中传递 Name 和 ProductID 参数,但属性仍然为空。我想使用“参数”,因为我想将 0..N 个参数传递给操作。
这是路线模板。
asp.net-mvc - MVC 3 Web API 路由不起作用
我正在解决 MVC 3 Web API 中的路由问题。看起来应该很简单,但我没有取得任何进展。
我的错误是:
我的 RegisterRoutes 是这样的:
我的控制器是(为了便于阅读,我取出了代码):
当我尝试调用时出现错误:
TIA
c# - 在 WebApi 操作中使用 C# 关键字
我正在替换旧版 Web 服务的控制器中编写操作。问题是我需要使用 C# 关键字 (ref) 作为参数。下面的代码无法编译,因为我使用的是保留字 ref。那么如何设置 WebApi Routing 来处理这个问题呢?
例子:
谢谢
c# - WebApi 使用 GetAll() 和 GetByIds(int[] ids) 发现多个操作
使用标准路线:
通过这些操作:
并向/api/values发出请求,我得到了这个异常:
我一直在转动我的轮子试图找到解决这个问题的方法。我相信GetAll和GetByIds操作在这里被认为是Multiple,但它们不是因为 GetByIds 具有不同的签名。
是否有不涉及添加{action}
到路线的解决方法?
c# - Web API 中的路由/操作损坏
我在 WebApiConfig.cs 中定义了我的默认路由:
在我的控制器中,我有一个动作:
我知道这是最近工作的,但现在我得到了臭名昭著的“在控制器'用户'上找不到与请求匹配的操作”错误。我似乎无法弄清楚(如果有的话)发生了什么变化。自从添加页面/偏移的默认值以来,我已经撤消了所有更改,但仍然没有。
有任何想法吗?
请求网址:http://localhost/api/api/Users
rest - 组合键资源 REST 服务
我在工作中遇到了一个问题,我找不到有关在 RESTful Web 服务中针对主键是其他资源 ID 组合的资源执行 CRUD 操作的常用标准或实践的信息。我们正在使用 MVC WebApi 创建控制器。例如,我们有三个表:
Product
: PK=产品编号Part
: PK=PartIdProductPartAssoc
: PK=(ProductId, PartId)
一个产品可以有很多部分,一个部分可以是很多产品的组成部分。关联表还包含与关联本身相关的附加信息,而不是需要可编辑的。
我们有ProductsController
和PartsController
类使用定义为的路由模板处理通常的 GET/PUT/POST/DELETE 操作:{controller}/{id}/{action}
这样以下 IRI 可以工作:
- GET,POST
/api/Products
- 返回所有产品,创建一个新产品 - GET,PUT,DELETE
/api/Products/1
- 检索/更新/删除产品 1 - GET,POST
/api/Parts
- 返回所有部分,创建一个新部分 - GET,PUT,DELETE
/api/Parts/2
- 检索/更新/删除第 2 部分 - GET
/api/Products/1/Parts
- 获取产品 1 的所有部件 - GET
/api/Parts/2/Products
- 获取第 2 部分是组件的所有产品
我遇到的问题是如何为 ProductPartAssoc 资源定义路由模板。获取关联数据的路由模板和 IRI 应该是什么样的?遵守惯例,我希望是这样的:
- GET,POST
/api/ProductPartAssoc
- 返回所有关联,创建关联 - GET,PUT,DELETE
/api/ProductPartAssoc/[1,2]
- 检索/更新/删除产品 1 和第 2 部分之间的关联
我的同事发现这在美学上令人不快,并且似乎认为完全没有ProductPartAssocController
课程会更好,而是ProductsController
向管理关联数据添加额外的方法:
- GET,PUT,DELETE
/api/Products/1/Parts/2
- 获取产品 1 和第 2 部分之间关联的数据,而不是作为第 1 部分的成员的第 2 部分的数据,这通常是基于其他示例(例如/Book/5/Chapter/3
我在其他地方看到的)的情况。 - POST 这里不知道他们期望 IRI 是什么样子。不幸的是,他们是决策者。
归根结底,我想我正在寻找的不是验证,就是我可以指出并说“看,这就是其他人所做的”的方向。
处理由复合键标识的资源的典型做法是什么?
c# - Web api project routing trouble
I have simple web API project (ASP.NET MVC). I need to deploy my project in the subfolder on the IIS. For example, I have the site http://TestSite
/ and I need to deploy the project to http://TestSite/MyProject/
. When I did it, web API routing stopped to work. Because my ajax call is routed to the main site - http://TestSite/api/something/get
.
I have tried to update map routing in the next way:
But it doesn't affect as I want. What I am doing wrong and where can I read about some practices of web API control routing in ASP.NET MVC?
asp.net - Asp.net Web API:在控制器上未找到任何操作
所以这真的让我很头疼。
路线:
控制器:
但是每当我尝试点击 uri: /api/lookups/all 时,我都会收到 404 错误消息:
“在与名称‘all’匹配的控制器‘查找’上没有找到任何操作。”
任何帮助,将不胜感激
编辑:所以我终于想通了。这是因为错误的依赖。VS2012 将动作自动解析为 system.web.mvc.actionnameattribute,而我需要的是 system.web.http.actionnameattribute。
奇怪的问题,无论如何,我希望这对其他人有帮助。
c# - 有没有办法告诉路由我的默认操作名称等于 HTTP 操作动词?
我在 MSDN 上浏览了这个文档,但无法找到答案。
考虑到我有这样定义的路线:
现在我有两个看起来像这样的控制器:
我希望能够像这样调用所有这些端点:
这将起作用,但前提是我将“Get”添加为默认操作名称。如果我没有在我的路由中指定默认操作名称,那么它会抱怨多个匹配的操作名称。如果我确实添加了默认操作名称,那么我无法在没有错误的情况下将 PUT 调用到 Put() 方法,因为操作名称与默认值不匹配并且找不到。
如果在尝试使用之前存在,我如何告诉路由使用名称与我的 HTTP 动词匹配的操作