Делаю API:
Конфиругация:
var address = "http://localhost:50353";
var config = new HttpSelfHostConfiguration(address); //TODO: конфигурация
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "GetPackages",
routeTemplate: "api/{controller}/{importStartDate}/{importEndDate}/{deliveryStartDate}/{deliveryEndDate}/{status}",
defaults: new
{
controller = "Package",
action = "GetPackages",
importStartDate = RouteParameter.Optional,
importEndDate = RouteParameter.Optional,
deliveryStartDate = RouteParameter.Optional,
deliveryEndDate = RouteParameter.Optional,
status = RouteParameter.Optional,
}
);
Класс контроллера:
public partial class PackageController : ApiController
{
[Route("package/{packageId}/{typeId}")]
public List<TreeNode> GetPackageContentByType(int packageId, int typeId)
{
throw new NotImplementedException();
}
[Route("package/{importStartDate?}/{importEndDate?}/{deliveryStartDate?}/{deliveryEndDate?}/{status?}")]
[ActionName("GetPackages")]
public List<TreeNode> Get([FromUri]DateTime? importStartDate, [FromUri]DateTime? importEndDate, [FromUri]DateTime? deliveryStartDate, [FromUri]DateTime? deliveryEndDate, [FromUri]int? status)
{
throw new NotImplementedException();
}
}
По URL http://localhost:50353/package/1/1 захожу в метод, получаю честный NotImplementedException.
По URL http://localhost:50353/package?importStartDate=2018-04-05 получаю ошибку:
No action was found on the controller 'Package' that matches the request.
В метод, само собой, не попадаю.
Похоже, что-то не так в маршруте, но что - не могу понять.
Попробуйте специфицировать типы у параметров роутинга:
public class PackageController : ApiController
{
[Route("package/{packageId:int}/{typeId:int}")]
public List<TreeNode> GetPackageContentByType(int packageId, int typeId)
{
throw new NotImplementedException();
}
[Route("package")]
public List<TreeNode> Get(DateTime? importStartDate, DateTime? importEndDate, DateTime? deliveryStartDate, DateTime? deliveryEndDate, int? status)
{
throw new NotImplementedException();
}
}
И удалите маппинг GetPackages
из конфига
Ожидаю, что должно работать по http://localhost:50353/package?importStartDate=2018-04-05
Почитать
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Помогите пожалуйста если кто-то может перевести эту программу на языке C#Программа написано на языке Delphi
Нашел на просторах интернета событие для элемента ControlLostFocus Но в студии почему-то нет такого события?
Всем приветМожет кто сталкивался с такой cms как 'contenido', а точнее ее обновлением