2016-01-22 118 views
0

在WEB API控制器中,我们是否可以使用HTTPGET/HTTPPOST等不同HTTP动作具有相同的方法名称。如果有,请详细说明RouteConfig中需要什么配置。 (我有一个角度前端应用程序试图调用这些方法)Web API控制器上的相同方法名称

这里是例子。

[HttpGet] 
     public string Test() 
     { 
      return "Success"; 
     } 


[HttpPost] 
     public string Test() 
     { 
      return "Success"; 
     } 

这里是我的routeconfig

config.Routes.MapHttpRoute("DefaultApiWithId", "Api/{controller}/{id}", new { id = RouteParameter.Optional }, new { id = @"\d+" }); 
config.Routes.MapHttpRoute("DefaultApiWithAction", "Api/{controller}/{action}"); 
+0

看看'Route'属性。 –

回答

0

你不能在同一个类中定义的相同签名的方法。编译器不会让你这样做! 但是你为什么需要这个?如果操作是POST,那么你必须有一些方法来获取浏览器/客户端发布的数据。

[HttpPost] 
public string Test(string data) 
{ 
     return "Success"; 
} 

如果没有要发布的数据,那么只需简单地转到另一个方法即可。

+0

谢谢你的回应。是的,你是对的可以说我们有不同的参数post方法..我们可以在API中工作吗?无法使用任何输入参数获得方法,并使用输入参数和方法名称相同? – Naga

2

在Web API控制器,我们可以有 不同的HTTP动词同样的方法名称,比如HTTPGET/HTTPPOST等

我想改写这个:

我可以GET和POST请求到同一个Url,并已妥善处理 。

是的。您可以使用Route属性为这两个API控制器方法处理相同的URL,一个用于GET,另一个用于POST适当地用HttpGetHttpPost属性修饰。

[HttpGet] 
[Route("api/mymethod")] 
public string SomeMethod() 
{ 
    return "from somemethod - get"; 
} 
[HttpPost] 
[Route("api/mymethod")] 
public string SomeAnotherMethod() 
{ 
    return "from some another method - post"; 
} 
0

您可以添加两个不同参数的方法。

[HttpPost] 
public string Test(string data) 
{ 
     return "Success"; 
} 

[HttpGet] 
public string Test() 
{ 
     return "Success"; 
} 

希望这是你在找什么。

相关问题