Це, звичайно, зміна з бета-версії на RC. У прикладі, наведеному у питанні, вам тепер потрібно прикрасити свою дію за допомогою [HttpGet] або [AcceptVerbs ("GET")].
Це спричиняє проблему, якщо ви хочете змішати дії на основі дієслів (тобто "GetSomething", "PostSomething") з діями, не заснованими на дієсловах. Якщо ви спробуєте використати наведені вище атрибути, це призведе до конфлікту з будь-якою дієслівною дією у вашому контролері. Одним із способів отримати arount, це було б визначити окремі маршрути для кожного дієслова та встановити дію за замовчуванням для імені дієслова. Цей підхід можна використовувати для визначення дочірніх ресурсів у вашому API. Наприклад, такий код підтримує: "/ resource / id / children", де id та діти не є обов'язковими.
context.Routes.MapHttpRoute(
name: "Api_Get",
routeTemplate: "{controller}/{id}/{action}",
defaults: new { id = RouteParameter.Optional, action = "Get" },
constraints: new { httpMethod = new HttpMethodConstraint("GET") }
);
context.Routes.MapHttpRoute(
name: "Api_Post",
routeTemplate: "{controller}/{id}/{action}",
defaults: new { id = RouteParameter.Optional, action = "Post" },
constraints: new { httpMethod = new HttpMethodConstraint("POST") }
);
Сподіваємось, у майбутніх версіях веб-API буде краща підтримка цього сценарію. Наразі у проекті aspnetwebstack codeplex http://aspnetwebstack.codeplex.com/workitem/184 реєструється проблема . Якщо це те, що ви хотіли б побачити, просимо проголосувати за це питання.