我的代码中有一个带有路由前缀的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中
答案 0 :(得分:2)
您确定它不应该使用RouteAttribute
来装饰动作而不是HttpRouteAttribute
吗?您没有通过使用intellisense创建名称为{{1}的类来创建它}您偶然遇到了吗?