2016-07-22 151 views
1

我想构建一个接受字符串参数并返回字符串值的Web API,但我总是收到错误,请求的资源不支持HTTP方法GET。我在堆栈溢出中搜索了一下,并添加了行[AcceptVerbs("GET")],但我仍然遇到了错误。有人能帮我吗?Asp.net Web API所请求的资源不支持http方法'GET'

的Global.asax.cs文件

config.Routes.MapHttpRoute(
       name: "sasRoute", 
       routeTemplate: "api/sas/{container}", 
       defaults: new 
       { 
        controller = "sas", 
        container = RouteParameter.Optional 
       } 
      ); 

控制器的方法

[Route("{container}")] 
[AcceptVerbs("GET")] 
[HttpGet] 
public string GetContainerToken(string container) 
{ 
    return container; 
} 
+0

您试图使用哪个URL? –

+0

@PaulAbbott的http://本地主机:52896/API/SAS /测试 –

+0

你应该尝试: [路线( “/ API /移动/ {容器}”)] [HTTPGET] 公共字符串GetContainerToken(字符串容器) 返回容器; } –

回答

3

你并不需要注册定义路由,因为你已经有属性路线

将其从您的代码中删除。相反,您将需要RoutePrefix

[RoutePrefix("api/sas")] 
public class SasController : ApiController 
{ 
    [Route("{container}")] 
    public string Get(string container) 
    { 
     return container; 
    } 
} 
相关问题