c# - ASP.NET Web API 属性路由 : RoutePrefix with Route Parameter

标签 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)
    {
        //...
    }
}

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

最佳答案

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

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

关于c# - ASP.NET Web API 属性路由 : RoutePrefix with Route Parameter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31520927/

相关文章:

c# - mysql 和 c# 日期时间的转换和比较

c# - 如何知道上传的文件是否被更改?

c# - 如何从周数和工作日 C# 获取日期

asp.net-mvc - MVC 路由可选字符串参数和难看的 url

asp.net-mvc - 如何在 RouteCollectionRoute 中找到正确的路线?

c# - 有没有一种在 Windows 窗体上播放 AVI 视频的简单方法?

c# - C#中指定 block 内的XmlDocument GetElementsByTagName

c# - 属性路由识别可选的查询字符串参数

c# - 确定何时在 .NET MVC 请求中发送无效的 JSON 键/值对

jQuery 按钮导航到具有路由值的操作 Controller ?