Вот определение маршрута:
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{*data}",
defaults: new { data= RouteParameter.Optional }
);
Теперь в контроллере продукта у меня есть действие, определенное следующим образом:
public string Get(string data="")
{
return "value";
}
Я тестирую http-get
со следующим URL
api/product/
api/product/apple
оба работают
Но если я использую этот URL
api/product/?p=5
это выкинет исключение
No action was found on the `controller` 'product' that matches the request.
я понимаю, что могу определить другое действие, подобное этому, для решения проблемы
public string Get(int p,string data="")
{
return "value";
}
Но у меня это не сработает, потому что параметры на url
непредсказуемы, ни название параметров, ни значение параметров.
Итак, мой вопрос
Есть ли способ определить одно действие для обработки всех http-get
запросов, поступающих на этот контроллер, независимо от того, какая строка запроса используется в URL-адресе?
api/product?p=5
? Я не могу сказать, что когда-либо видел URL-адрес, за которым непосредственно следует / после строки запроса. - person Justin Pihony   schedule 03.06.2012