问题标签 [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 - 在 ASP.NET MVC API 中发布对象
我有一个MVC 应用程序,它在一个简单的mvc 4 项目中包含一个 Web 应用程序。此外,我有一个Windows 应用程序,它是另一个 Windows 应用程序项目中 Web 应用程序的 Windows 执行。
Windows 应用程序使用MVC API并通过 resthelper 类以 TfsApiController 的名称调用 MVC Web 应用程序控制器。
除 post 方法外,所有方法均有效。我想将一个对象发布到 tfsapi 控制器。
rest 助手类的 post 方法:
我的 TfsApiController 方法:
和路由:
我浪费了很多时间,但我不知道是什么问题。
更新:
这是我的所有路由:
c# - 在 DelegatingHandler 中访问 ApiController 类型
我正在为一个项目使用 Asp.Net WebAPI。我目前正在研究身份验证和授权。
我有一个 messageHandler 将检查请求的 HTTP 身份验证标头并构建我的身份和用户配置文件。但是,我想用该操作可能需要的声明来注释我的控制器操作(或只是控制器)(我们有很多用户可以拥有的声明,所以我不想全部加载它们)。
例如:
在身份验证消息处理程序中,我希望能够查看属性并仅根据需要从数据库中取回声明。为此,我需要知道我将根据路由点击什么控制器和操作:
所以我可以得到那个。但是现在我需要把它变成一个我可以反映的类型,但我只有控制器名称(甚至不是完整的类名或命名空间)。我怎样才能把它变成我可以反思以获得属性等的东西?
我正在研究DefaultHttpControllerSelector
WebAPI 堆栈是如何做到的,它似乎使用HttpControllerTypeCache
. 这是一个内部类,所以我无法创建实例。获取目标控制器类型的正确方法是什么?
c# - Asp.Net MVC4 + Web API 控制器删除请求 >> 404 错误
我有一个 VS2012 MVC4 解决方案,我在其中测试 Web API 控制器。
我成功测试了 GET、POST、PUT,但 DELETE 仍然给我一个 http 404 错误。当我在我的 api 控制器中的“删除电影”操作中设置断点时,断点永远不会到达。
我阅读了很多关于这个问题的帖子,但没有人帮助我。
这是我的 DELETE API 控制器:
这是我的html页面:
我的经典路线如下:
我的 API 路由如下:
在我的解决方案属性中,我配置了“使用本地 IIS Web 服务器”并选中了“使用 IIS Express”
我也尝试使用“使用 Visual Studio 开发服务器”但同样的问题。
任何的想法?
谢谢。
c# - 将大多数 MVC 操作定向到 Web API 控制器
我已经使用 Web API 控制器构建了一个 MVC 项目。我没有使用POST
,GET
方法,而是将路由配置为在我的 API 控制器中使用操作。
这是我的路由器配置:
这是我的控制器:
我不知道这段代码是好是坏。我是否正确使用了 Web API 控制器?
c# - 在 web-api 中使用可选参数进行路由
使用 web-api 我去 /api/cat/orders/
我指定了以下路线和控制器方法。我希望使用“ApiRouteWithCategoryAndExtId”路由和“GetMessageByCategoryExtId”方法,因为我将“extid”设为可选。但它使用的是默认的 Get 方法。
(/api/cat/orders/id18 使用GetMessageByCategoryExtId,但是extid 不是可选的)
我究竟做错了什么?
路线:
控制器:
asp.net-mvc - 存在多个获取操作时的 MVC API 路由
似乎有一千人在堆栈溢出问题上提出相同的问题,但似乎没有一个单一的解决方案来解决这个问题。我又要问了。。。
我有一个具有以下操作的 API 控制器:
在我的 APIConfig 中,我定义了以下路线:
我发现我可以毫无问题地访问以下操作: /api/exploitation /api/exploitation/getbysongwriterid/1 /api/exploitation/getbysongid/1
当我尝试访问 /api/exploitation/1 我得到这个异常
谁能看到我的路线有什么问题?还是有其他问题?
asp.net-web-api - 为路由指定有效的控制器
我必须为我们的系统提供两个 Web APIPublicController
控制器PrivateController
。这些应该有以下路线:
/public/{controller}/{id}
和
/private/{controller}/{id}
在防火墙上,所有请求/private
都被阻止,并且只能从网络内部获得。但按照惯例,我的两个控制器都可用于两条路由,因此我可以使用 url请求PrivateController
(它应该只在 下可用) 。/private
/public/PrivateController/1
有没有办法为路由指定有效的控制器,以便PrivateController
仅可用于私有路由?还是有一些其他的做法来满足这个要求?
感谢您的回复。
asp.net-mvc-4 - mvc4 web api route sheme
我想要这样的访问资源:
这条路线有什么不正确的?
编辑
以下是错误详情:
c# - RouteTester 路由中的可选参数问题
我有一个带有路由的 MVC4 WebApi 项目,该项目与路由中的可选“id”参数一起正常工作:
当发出实际请求时,路由会在控制器方法中点击 GetAll 或 Get 方法:
但是在单元测试中,RouteTester 对象总是命中 Get 方法,而不是 GetAll。
作品:
失败:
我试过传入一个实际的过滤器对象而不是 null 但这根本不会改变结果。
我知道我可以通过创建两条不同的路由来修复它,但我有点不情愿,因为当前路由确实适用于除单元测试之外的所有内容。
有什么建议么?
asp.net - 带有 PUT 的 ASP.NET Web API 路由
我正在尝试为我认为非常简单的事情设置 Web API 路由。但是,Web API 中的路由似乎与不同的 HTTP 动词不一致。假设我有这个控制器有这些动作......
我定义了以下路线...
然后我最终定义了以下路线......
为什么不选择默认 PUT 路由?默认 GET 和默认 PUT 的路由有什么不同?我已经尝试以各种可以想象的方式装饰这些功能,但我得到了相同的结果。
主要是我想知道如何获取默认的 PUT 路由。如果您对如何修改这些路由有任何建议,这样我就不必为每个控制器指定一个路由来指定动作名称,这也很棒。
谢谢!
伊恩
编辑:我今天早上注意到以下路线也没有被定义..