在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参数。
答案 0 :(得分:3)
您不能使用object
作为参数类型,因为Web API不知道如何将字符串转换为对象。您必须使用简单类型,例如int
,string
,Guid
等。如果要使用复杂类型,则必须使用FromUri
属性或为它编写自定义转换器。
有关http://www.asp.net/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api
的更多信息