Так что я пытаюсь сделать это:Как передать строку контроллеру?
http://localhost:43751/api/doWork/asdfasfsaf
А вот контроллер:
public class DoWorkController : ApiController
{
public User GetWork(String input) {
Dictionary<int, Work> users = DataObjects.Work.find(input);
return users.Values.First<Work>();
}
}
я запустить его и он не работает:
не обнаружено HTTP ресурсов который соответствует запросу URI
'http://localhost:43751/api/doWork/asdfasfsaf'
.
и
Никаких действий было обнаружено на контроллере 'DoWork', который соответствует запросу.
Что я делаю неправильно?
Вот мой Routing Configuration:
public static void RegisterRoutes(RouteCollection routes) {
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
Что произойдет, если вы измените 'String input' на' String id'? Можете ли вы показать нам свою маршрутизацию веб-API? –
@Ric На самом деле, с веб-API, вы обычно не включаете имя действия в URL-адрес. По соглашению, любое действие, начинающееся с «Get», будет соответствовать любому запросу «GET». –
@ ChrisHardie это звучит интересно. Я откажусь от комментариев. – Ric