Проблема с использованием AngularJS $location provider и ASP.NET связи действий MVC вместе
У меня есть приложение, которое использует оба ASP.NET MVC и Angularjs. Я использую AngularJS $location provider для изменения поисковой части url-адреса при добавлении или удалении фильтров.
$location.search(searchObj);
Затем я подписываюсь на событие $locationChangeSuccess и использую signalr для обновления данных на странице, не требуя asp.net публикуйте каждый раз, когда меняется фильтр.
$scope.$on('$locationChangeSuccess', onRouteChanged, false);
Все вышеперечисленные работы, однако, у меня также есть некоторые ссылки на действия mvc на странице, которую мне нужно работа при нажатии кнопки.
<a href="@(Url.Action("Details", "Video"))/{{item.id}}">
...
</a>
К сожалению, при нажатии на эти ссылки url-адрес обновляется, но сообщение mvc не происходит. Если кто-то знает, как это сделать, я буду благодарен.
1 ответ:
По умолчанию ссылка в Директиве
a
обрабатывается модулем маршрута AngularJS. Если вы хотите сделать запрос API, вы можете сделать вызов с помощью модуля$http
, либо завернутого в сервис или фабрику, либо просто в контроллер.Попробуйте это:
<a href="" ng-click="showVideo(@(Url.Action("Details", "Video"))/{{item.id}})"> $scope.showVideo = function (url) { $http.get { method: 'GET', url: url }). success(function (data, status, headers, config) { // this callback will be called asynchronously // when the response is available }). error(function (data, status, headers, config) { // called asynchronously if an error occurs // or server returns response with an error status. }); }