【问题标题】:Attribute Routing in WebAPI: The Resource Cannot Be FoundWebAPI 中的属性路由:找不到资源
【发布时间】:2013-11-28 04:53:27
【问题描述】:

带有 WebAPI 端点的 ASP.NET MVC4 项目。我正在尝试为 MVC 控制器和 API 控制器配置 AR。我添加了以下内容:

现在我在 App_Start 中看到了另外两个文件:AttributeRoutingConfig 和 AttributeRoutingHttpConfig。

第一个是这样的:

[assembly: WebActivator.PreApplicationStartMethod(typeof(AttributeRoutingConfig), "Start")]

public static class AttributeRoutingConfig
{
    public static void RegisterRoutes(RouteCollection routes) 
    {       
        GlobalConfiguration.Configuration.Routes.MapHttpAttributeRoutes();
    }
    public static void Start() 
    {
        RegisterRoutes(RouteTable.Routes);
    }
}

第二个是这样的:

[assembly: WebActivator.PreApplicationStartMethod(typeof(AttributeRoutingHttpConfig), "Start")]

public static class AttributeRoutingHttpConfig
{
    public static void RegisterRoutes(HttpRouteCollection routes) 
    {    
        routes.MapHttpAttributeRoutes();
    }
    public static void Start() 
    {
        RegisterRoutes(GlobalConfiguration.Configuration.Routes);
    }
}

在我的 GlobalConfig 我有这个:

 GlobalConfiguration.Configure(WebApiConfig.Register);

在我的 WebApiConfig 我有这个:

 config.MapHttpAttributeRoutes();

当我尝试 POST 到用 [POST("api/message")] 装饰的路由时遇到的错误:

The constraint entry 'inboundHttpMethod' on the route with route template 'api/message' must have a string value or be of a type which implements 'IHttpRouteConstraint'.

在我的 Global.asax 中:

        GlobalConfiguration.Configure(WebApiConfig.Register);
        RouteConfig.RegisterRoutes(RouteTable.Routes);

我做错了什么?

【问题讨论】:

    标签: asp.net-mvc-4 asp.net-web-api asp.net-mvc-5 attributerouting


    【解决方案1】:

    您正在尝试将 Tim McCall 的包 + Web API 2 的内置属性路由功能结合起来。不要安装该软件包,因为它已经内置在 Web API 2 版本中。

    检查这个:http://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2

    【讨论】:

    • 谢谢 Kiran - 我会试着拉出包裹看看会发生什么。既然我在 MVC4 上,我还需要 MVC 属性路由包吗?
    • 酷。删除 WebApi 包后,我用 [Route()] 替换了我的属性,一切似乎都很好 - 尽管我不能再指定 POST 很臭
    • 只需将HttpPost添加到路由中:[Route(""), HttpPost()]
    猜你喜欢
    • 2019-11-26
    • 2017-02-19
    • 1970-01-01
    • 2016-12-17
    • 1970-01-01
    • 1970-01-01
    • 2014-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多