2015-10-06 54 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