【问题标题】:API route not found未找到 API 路由
【发布时间】:2019-03-21 08:56:27
【问题描述】:

我的代码中有一个带有路由前缀的 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 中

【问题讨论】:

  • 我很好奇:[HttpRoute("get/test")]。也许我不熟悉该属性,但我希望它是[Route("get/test")]

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2018-12-27
    • 2013-06-02
    • 2020-10-26
    • 1970-01-01
    • 1970-01-01
    • 2017-08-16
    • 2014-12-31
    • 1970-01-01
    相关资源
    最近更新 更多