2015-10-06 58 views
2

我使用C#Web API 2項目的路線。我想要一個控制器,它有一個包含兩個可能的路徑的函數,用於同一個方法。如果沒有設置大小,我希望它傳遞null。到目前爲止,我已經嘗試過:我怎樣纔能有兩個使用相同的方法使用C#WebAPI 2

public class PController : ApiController 
{ 
    [Route("~/personphoto/{id:Guid}")] 
    [Route("~/personphoto/{id:Guid}/sizes/{string:size}")] 
    [AllowHeaderFilter(HttpMethodFlag.Get)] 
    public IHttpActionResult GetPhoto(Guid id, string size) 
    { 
     // Do Something 
    } 
} 

這可能嗎?

+1

什麼是有問題的'[路線( 「〜/ personphoto/{ID:GUID} /尺寸/ {字符串:大小}」)] '路線?如果您不想傳遞大小,請將其傳遞爲空。是否有任何特定的原因要創建兩條路線。 –

+1

我想創建一個指定默認大小的路徑,因此您不必將大小/ {大小}放在 – chris31389

回答

0

我相信這是你要找的內容:

[Route("~/personphoto/{id:Guid}/{sizes?}/{size?}")] 
public IHttpActionResult GetPhoto(Guid id, string sizes = "", string size = "") 
+0

我猜「大小」是字符串文本,而不是參數,在op情況下。 – Jamby