Я создал шаблон маршрута:Wildcard в WebAPI Route шаблон
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}/{*wildcard}",
defaults: new { id = RouteParameter.Optional }
);
действия подписи контроллера:
public IEnumerable<object> Get(Int64 id,string abc)
Я пытался сравнить его с URL http://mymachine.com/api/Individuals/1?abc=4, но это дает мне исключение
{"$ id": "1", "Message": "Ошибка имеет .", "ExceptionMessage": "Ссылка на объект не s и др к экземпляру из объекта с "" ExceptionType. ":" System.NullReferenceException " "StackTrace":" на System.Web.Http.ValueProviders.Providers.RouteDataValueProvider.d__4.MoveNext() \ г \ n
Странно, http://mymachine.com/api/Individuals?id=1&abc=4 действительно соответствует контроллеру, действию и параметрам.
Я думал, "{ID}" из "API/{контроллер}/{ID}/{символ *}" будет работать.
Почему?
You cant имеет необязательный параметр, а не необязательный! Кроме того, если вы передаете строку abc в качестве строки запроса, вам не нужно иметь ее на маршруте! Я бы переделал свой маршрут, если бы был на вашем месте ... подумать –