Я пытаюсь использовать Web Api для отправки/получения данных с сервера. WebApiConfig.cs:Ошибка Web Api 404 Ресурс не найден
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}/{action}"
);
RouteConfig.cs:
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 }
);
}
Globa.asax.cs:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
GlobalConfiguration.Configure(WebApiConfig.Register);
}
Апи контроллер (ServicesController.cs):
public class ServicesController : ApiController
{
public List<TreeMenuItem> LoadMetadata()
{
List<TreeMenuItem> itemsMenu = new List<TreeMenuItem>();
TreeMenuItem dataSource = new TreeMenuItem("1", "DataSources", null);
itemsMenu.Add(dataSource);
return itemsMenu;
}
}
Я пытаюсь апи доступ из контроллера angularJS как ниже:
angular.module("App", ["ngRoute", "ngResource"])
.controller('MainController', ["$scope", "$http", MainController]);
function MainController($scope, $http) {
var baseUrl = "Services/LoadMetadata";
var params = {};
$http.post(baseUrl, params)
.then(function (data) {
$scope.roleList = data.data;
});
}
Я получаю ошибку 404 на $ http.post для "Услуги/LoadMetadata"! Я пробовал какую-то версию с использованием маршрута - та же ошибка 404. Любая помощь?
попробуйте зарегистрировать webapi до регистрации маршрута – harishr
отлично. Теперь все в порядке. :-). – BogdanIM
К сожалению, я не могу отметить ответ на ваш комментарий. – BogdanIM