ASP.NET Web API属性路由:带路由参数的RoutePrefix

时间:2015-07-20 15:50:46

标签: c# asp.net attributerouting

在ASP.NET中是否可以在包含路由参数的ApiController上具有RoutePrefix属性?

[RoutePrefix("api/parent/{pid}/child")]
public class ChildController : ApiController
{
    [Route("")]
    public HttpResponseMessage Get(object pid)
    {
        //...
    }

    [Route("{cid}"]
    public HttpResponseMessage Get(object pid, object cid)
    {
        //...
    }
}

我希望所有控制器方法都可以访问pid参数。

1 个答案:

答案 0 :(得分:3)

您不能使用object作为参数类型,因为Web API不知道如何将字符串转换为对象。您必须使用简单类型,例如intstringGuid等。如果要使用复杂类型,则必须使用FromUri属性或为它编写自定义转换器。

有关http://www.asp.net/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api

的更多信息