Я работаю с проектом ASP.Net Web Api на Web Developer Express 2010. Конфигурационный маршрутизации определяется в WebApiConfig.cs как:ASP.Net Web Api маршрутизации проблема с ActionName
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "DefaultApi3",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { action = RouteParameter.Optional,
id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "DefaultApi4",
routeTemplate: "api/{controller}/{action}",
defaults: new { action = RouteParameter.Optional }
);
}
АНИ контроллер называется «GCURObservationController» имеет действие, как:
[HttpGet, ActionName("retrieveCuringMaps")]
public IList<SimpleCuringMapsModel> retrieveCuringMaps()
{
... ...
return jsonCuringMapModels;
}
проект был составлен и успешно работать. Тем не менее, я должен был пойти в
http://localhost:2061/api/GCURObservation/retrieveCuringMaps/0
, чтобы получить действие срабатывающие (имя действия следует любое целое число), а не то, что я ожидал
http://localhost:2061/api/GCURObservation/retrieveCuringMaps
Это означает, что любое целое число было следовать название действия, чтобы понять это правильно. В противном случае ошибка была возвращена. Я не хочу, чтобы это действие запускалось с любым параметром.
{"Message":"The request is invalid."}
Как получить второй URL для работы? Благодаря
Cheers, Alex
маршрутизация работает через проваливаются (думайте о нем, как случай, когда он падает, пока она не соответствует), так что порядок маршрутов много вопросов. Я думаю, вы можете исправить это, заменив 'DefaultApi3' и' DefaultApi4', или изменив свое действие на 'retrieveCuringMaps (int id = 0)' –
Спасибо Siva. Тем не менее, он по-прежнему дал ту же ошибку после того, как я заменил DefaultApi3 и DefaultApi4. – alextc
Просто из любопытства, что происходит, когда вы удаляете маршрут «DefaultApi»? Это кажется принципиально ошибочным, поскольку у вас нет маршрута без действия. –