2015-08-20 3 views
-2

У меня есть CourseAPi контроллер, который содержащий метод follwing:MVC AngularJs Обработка строки запроса

public IEnumerable<CoursesDTO> Get(int id) 
    { 
     var x = _uniManager.GetCourses(id); 
     return x; 
    } 

я хочу, чтобы отправить идентификатор из URL-адресов к этому методу с использованием Angualr JS контроллер AngularJs:

app.controller('CRUD_OperController', function ($scope, $filter, CRUD_OperService, $location) { 



GetAllRecords1(); 
function GetAllRecords1() { 
    var id = 12; 
    var promiseGetSingle = CRUD_OperService.get(id); 
    promiseGetSingle.then(function (pl) 
    { $scope.Courses = pl.data }, 
      function (errorPl) { 
      // $log.error('Some Error in Getting Records.', errorPl); 
      }); 
} 

});

Моя угловая служба:

app.service('CRUD_OperService', function ($http) { 



//Get All Student 
this.getAllStudent = function() { 

    return $http.get("/api/CourseApi/"); 
} 

//Get Single Records 

this.get = function (id) { 
    return $http.get("/api/CourseApi/" + id); 
} 

});

мой WebAPI конфигурации

public static void Register(HttpConfiguration config) 
    { 
     config.MapHttpAttributeRoutes(); 



     config.Routes.MapHttpRoute(
      name: "DefaultApi1", 
      routeTemplate: "api/{controller}/{action}/{id}", 
      defaults: new { id = RouteParameter.Optional } 
     ); 

     config.Routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "api/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional } 

     ); 

     config.EnableSystemDiagnosticsTracing(); 
    } 

Update: это вернуть меня ошибка GET http://localhost:54070/api/CourseApi/12 404 (Not Found)

+0

У меня вопрос не возникает. – bkribbs

+0

как пользователю angualr получить идентификатор в URL-адресе (http: // localhost: 54070/Course/index/15), чтобы sned на контроллер api – salah

ответ

0

Это формат, я использовал для такой задачи:

this.$http({ 
     method: 'GET', 
     url: 'api/courseapi/' + id 
    }).then(function (pl) { 
     $scope.Courses = pl.data 
    }, function (errorPl) { 
      $log.error('Some Error in Getting Records.', errorPl); 
    }); 

Это то, что вы просите?

+0

не работает для меня, возвратите эту ошибку: ReferenceError: id не определен – salah

+0

Что такое ошибка? Есть много других вещей, которые могут вызвать ошибку. Как называется ваш класс контроллера? Как настроена маршрутизация? – Rob10e

+0

check edit для web api confic и моего имени контроллера api (CourseApi) – salah

0

Я могу предложить два варианта:

Первый: настроить маршруты в Вашем угловом контроллера, используя нг-маршрут, впрыснуть $ routeParams модуль, а затем восстановить параметры его использования. См. Это link и Angular doc для получения дополнительной информации.

Второй вариант, чтобы получить расположение URL-адрес и манипулировать строку для того, чтобы получить параметр:

var tokens = $location.absUrl().split("/"); 
var id = tokens[5] 

Я предпочитаю первый вариант, это «чище», чем второй. Надеюсь, это поможет вам!

+0

спасибо, что второе решение работает нормально, но у меня все еще есть ошибка – salah

+0

Ошибка: не удалось загрузить ресурс: сервер ответил статусом 404 (Не найдено) – salah

+0

Ошибка при работе с конфигурацией – salah

Смежные вопросы