0
我尝试实施支持(主要由Ember.js http://jsonapi.org/)的JsonApi标准短跑的URL(映射到该动作)
一个ASP.NET网页API控制器的URL可能包含一个破折号。但是C#代码中相应的方法名称可能不包含破折号。
我的JavaScript尝试发布到
http://localhost:50000/jsonapi/activity-exercises
但我不能够实现,可以收到该请求的端点。 我曾尝试:
[HttpPost]
public HttpResponseMessage ActivityExercises([FromBody] ActivityExerciseEntry value)
{
// ...
理想的情况下应该有一个属性添加到方法指定的URL映射动作名称。这种属性是否存在?
我的路由映射是这样的:
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapHttpRoute("EmberJsonApi", "jsonapi/{action}/{id}", new { controller = "JsonApi", id = RouteParameter.Optional });
routes.MapHttpRoute("DefaultApi", "api/{controller}/{id}", new { id = RouteParameter.Optional });
}
您是否试过在动作中指定通过属性的路径? '[Route(“jsonapi/activity-exercises”)]' – Shelby115
或'''[ActionName(“activity-exercises”)]'''? – Rob
我建议你切换到“基于约定”路由的“属性”路由,因为你的URI很好......非传统(至少就.NET而言)http://www.asp.net/web- api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2#ENABLE –