【问题标题】:ASP.NET Web API Attribute Routing: RoutePrefix with Route ParameterASP.NET Web API 属性路由:带有路由参数的 RoutePrefix
【发布时间】:2015-10-09 20:05:36
【问题描述】:

在 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 参数。

【问题讨论】:

  • 如果我输入参数 ( {pid:int} ) 并且输入参数是整数而不是对象,我就能让它工作。为什么它不能像上面写的那样工作?

标签: c# asp.net attributerouting


【解决方案1】:

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

更多信息http://www.asp.net/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api

【讨论】:

    猜你喜欢
    • 2015-03-29
    • 1970-01-01
    • 2015-06-21
    • 2014-04-18
    • 2014-07-29
    • 1970-01-01
    • 2017-08-16
    • 2019-10-21
    • 1970-01-01
    相关资源
    最近更新 更多