如何使用C#WebAPI 2获得使用相同方法的两条路由
我正在将C#与Web API 2项目一起使用。我想要一个控制器,它有一个包含同一方法的两个可能路由的函数。如果未设置大小,我希望它传递null。到目前为止,我已经尝试:如何使用C#WebAPI 2获得使用相同方法的两条路由,c#,c#-4.0,routes,asp.net-web-api2,C#,C# 4.0,Routes,Asp.net Web Api2,我正在将C#与Web API 2项目一起使用。我想要一个控制器,它有一个包含同一方法的两个可能路由的函数。如果未设置大小,我希望它传递null。到目前为止,我已经尝试: public class PController : ApiController { [Route("~/personphoto/{id:Guid}")] [Route("~/personphoto/{id:Guid}/sizes/{string:size}")] [AllowHeaderFilter(H
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
}
}
这可能吗?我相信这正是您想要的:
[Route("~/personphoto/{id:Guid}/{sizes?}/{size?}")]
public IHttpActionResult GetPhoto(Guid id, string sizes = "", string size = "")
[Route(“~/personphoto/{id:Guid}/size/{string:size}”)]
路由有什么问题?如果不希望传递大小,则将其作为null传递。你想创建两条路由有什么特别的原因吗?我想创建一条路由,分配一个默认的大小,这样你就不必输入size/{size}inI猜测“size”是字符串文字,而不是参数。