2016-01-22 86 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"; 
} 

希望這是你在找什麼。

相關問題