Добавил один controller webapi
, IDE берется за то, чтобы производить класс WebApiConfig
и регистрирования конфигураций в global.asax
, до сих пор совсем совершенный. Я скроллирую мое приложение asp.net-mvc пробую соглашаться на одну Action
меня controller
и я получаю ошибку 404.
Поскольку уже у меня были проблемы ruteo ранее (из-за незнания) я предполагаю, что он проистекает из чего-то похожего.
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
GlobalConfiguration.Configure(WebApiConfig.Register);
}
GerenciasController
public IEnumerable Get()
{
...
}
Самое любопытное для меня состоит в том, что у меня есть другой controller
что, если оно функционирует, различие, чем во мне get
я определяю ruteo, отличный от назначенного по умолчанию.
[Route("api/Legajo/{idCompania}/{idLocal}/{fecha}")]
public IEnumerable Get(short idCompania, short idLocal, string fecha)
{
...
}
Я довожу до сведения, что я делаю один httpget
:
$.getJSON('/api/Gerencias/', null, function (data) {
...
});
Также я пробовал с моего browser прямо соглашаясь из-за маршрута:
http://misitio/api/Gerencias/
Я нашел проблему, это ордер на обыск конфигураций ruteo. IDE
автоматически тебе добавляет все в конце концов (видеть мой вопрос), это вызывает плохое упомянутое функционирование.
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
//Registrar aquí las configuraciones webapi
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
//no registrar aquí las configuraciones webapi
}
Помни, что этот ты должен призывать Get()
используя глагол http правильно, только он введет информацию в компьютер в этот, если ты использовал один GET
из http.
Используя GET
как глагол и url http://{sitio}/api/nombreController
был бы должен функционировать
Ты можешь использовать postman или fiddler , чтобы тестировать webapi.
Также пробует определять признаки
[Route("api/Gerencias")]
[HttpGet]
public IEnumerable<Gerencia> Get(){
}
Это это прокомментировало а следовательно я видел в этом artГ-заду
Аттрибуте Роутинг in ASP.NET Веб API 2
pdria, как Другой формы было
[Route("")]
public IEnumerable<Gerencia> Get(){
}
Проанализируй в статье титул "Роуте Префиксес" там упомяни об этом, что я комментирую. Он более там в controller определяет признак [RoutePrefix("api/books")]
GET
. Возможно falt и # 243; осветлять это в моем вопросе. Очень любопытное то, за чем оно последует, так как ничто мне не кажется редким.
– Alan
29.01.2016, 21:22
Попробуй это добавляя этикетку acciГіn в свойстве routerTemplate , например:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);