Questions tagged «asp.net-web-api-routing»

18
找到多个与Web Api中的请求匹配的操作
当我尝试使用2个“获取”方法时,我一直收到此错误 找到多个符合请求的操作:webapi 我一直在寻找关于堆栈的其他类似问题,但我不明白。 我有2个不同的名称,并使用“ HttpGet”属性 [HttpGet] public HttpResponseMessage Summary(MyVm vm) { return null; } [HttpGet] public HttpResponseMessage FullDetails() { return null; }

30
Post参数始终为null
自从为WebAPI升级到RC以来,在WebAPI上调用POST时遇到了一些真正的奇怪问题。我什至回到了在新项目上生成的基本版本。所以: public void Post(string value) { } 并从Fiddler致电: Header: User-Agent: Fiddler Host: localhost:60725 Content-Type: application/json Content-Length: 29 Body: { "value": "test" } 当我调试时,字符串“值”从未分配给它。它始终是NULL。有人遇到这个问题吗? (我首先看到了一个更复杂的类型的问题) 该问题不仅与ASP.NET MVC 4绑定,在RC安装后,对于新的ASP.NET MVC 3项目也会发生相同的问题


11
Web API控制器中的多个HttpPost方法
我开始使用MVC4 Web API项目,我有多种HttpPost方法的控制器。控制器如下所示: 控制者 public class VTRoutingController : ApiController { [HttpPost] public MyResult Route(MyRequestTemplate routingRequestTemplate) { return null; } [HttpPost] public MyResult TSPRoute(MyRequestTemplate routingRequestTemplate) { return null; } } 这里MyRequestTemplate表示负责处理请求中的Json的模板类。 错误: 当我使用Fiddler发出请求时,http://localhost:52370/api/VTRouting/TSPRoute或者http://localhost:52370/api/VTRouting/Route 出现错误: 找到多个符合要求的动作 如果我删除上述方法之一,则可以正常工作。 Global.asax 我尝试修改中的默认路由表global.asax,但仍然出现错误,我认为在global.asax中定义路由时遇到问题。这是我在global.asax中所做的事情。 public static void RegisterRoutes(RouteCollection routes) { routes.MapHttpRoute( name: "MyTSPRoute", routeTemplate: "api/VTRouting/TSPRoute", defaults: new …

8
ASP.NET Web API中的自定义方法名称
我正在从WCF Web API转换为新的ASP.NET MVC 4 Web API。我有一个UsersController,我想有一个名为Authenticate的方法。我看到了如何执行GetAll,GetOne,Post和Delete的示例,但是如果我想在这些服务中添加其他方法怎么办?例如,我的UsersService应该有一个称为Authenticate的方法,他们在其中传递用户名和密码,但这是行不通的。 public class UsersController : BaseApiController { public string GetAll() { return "getall!"; } public string Get(int id) { return "get 1! " + id; } public User GetAuthenticate(string userName, string password, string applicationName) { LogWriter.Write(String.Format("Received authenticate request for username {0} and password {1} …

3
Web Api属性路由中的可选参数
我想处理以下API调用的POST: /v1/location/deviceid/appid 附加参数来自后机构。 这一切对我来说都很好。现在,我通过允许将“ deviceid”和/或“ appid”和/或BodyData设置为null来扩展代码: /v1/location/deviceid /v1/location/appid /v1/location/ 这3个URL应该以相同的路径响应。 我的第一种方法(需要BodyData): [Route("v1/location/{deviceid}/{appid}", Name = "AddNewLocation")] public location_fromuser Post(string deviceid = null, string appid = null, [FromBody] location_fromuser BodyData) { return repository.AddNewLocation(deviceid, appid, BodyData); } 这不起作用,并返回编译错误: “可选参数必须在末尾” 下次尝试: [Route("v1/location/{deviceid}/{appid}", Name = "AddNewLocation")] public location_fromuser Post([FromBody] location_fromuser BodyData, string deviceid = null, …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.