首页 > 解决方案 > 未找到 API 路由

问题描述

我的代码中有一个带有路由前缀的 API,但是当我尝试点击它时,我得到一个 404。这是我的代码:

namespace MyProject.Authentication.Controllers
{
    [RoutePrefix("api/user")]
    public class MyUserController : ApiController
    {
        private readonly IMyDomainService _myDomainService;

        public MyUserController()
        {
            _myDomainService = new MyDomainService();
        }

        [HttpGet]
        [HttpRoute("get/test")]
        public HttpResponseMessage Test()
        {
            return Request.CreateResponse(HttpStatusCode.OK, "test success");
        }
    }
}

当我尝试访问 mysite.com/api/user/get/test 时,我得到一个 404。

我检查了 AttributeRoutingHttpConfig.cs ,这与我在其他 API 工作正常的项目中的情况相同:

public static class AttributeRoutingHttpConfig
{
    public static void RegisterRoutes(HttpRouteCollection routes)
    {
        // See http://github.com/mccalltd/AttributeRouting/wiki for more options.
        // To debug routes locally using the built in ASP.NET development server, go to /routes.axd

        routes.MapHttpAttributeRoutes();
    }

    public static void Start()
    {
        RegisterRoutes(GlobalConfiguration.Configuration.Routes);
    }
}

编辑:这是在 ASP.NET 4.5

标签: c#asp.netapiasp.net-mvc-4routes

解决方案


您确定它不应该使用RouteAttribute来装饰动作而不是HttpRouteAttribute,您还没有通过使用智能感知创建一个名称HttpRouteAttribute意外拥有您的类吗?


推荐阅读