ASP.NET Web API属性路由:具有路由参数的RoutePrefix
问题描述:
ASP.NET中是否有可能在包含路由参数的ApiController上具有RoutePrefix属性?ASP.NET Web API属性路由:具有路由参数的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参数。
答
您不能使用object
作为参数类型,因为Web API不知道如何将字符串转换为对象。您必须使用简单类型,例如int
,string
,Guid
等。如果您想使用复杂类型,则必须使用FromUri
属性或为其编写自定义转换器。
更多信息上http://www.asp.net/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api
我能得到这个,如果我输入参数的工作({PID:INT}),并有输入参数是一个整数,而不是一个对象。 为什么它不像上面写的那样工作? – Mackers