Angular / MVC应用程序中的页面重定向

时间:2015-11-09 23:43:08

标签: c# angularjs asp.net-mvc-5

我的视图中有一个按钮,我需要将我重定向到一个页面来编辑与之关联的元素。

这是按钮 - 非常直接。

<button type="button" class="btn btn-default" ng-click="edit(x.TemplateStepID)"><span class="glyphicon glyphicon-edit"></span></button>

这是我的角度控制器中的功能。

$scope.edit = function (e) {                
            TemplateService.editTemplateStep(e)
            .success(function (data) {

            })
            .error(function (error) {

            });
        };

和app.factory中的函数:

TemplateService.editTemplateStep = function (stepID) {
            alert(stepID);                
            return $http.get('@Url.Action("EditTemplateStep", "TemplateStep")', stepID);
        }

现在我可以将数据一直传递给editTemplateStep函数。但我无法弄清楚如何获取传递给MVC控制器函数的信息(stepID),以便我可以重定向到与该按钮相关联的元素的编辑页面。

Angular和MVC的新手。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

保存$scope.edit的参数并在调用reDirect函数时使用它:

$scope.reDirect(stepId, data) {
   //do the redirect
};    
$scope.edit = function (e) {
     var stepId = e;                
     TemplateService.editTemplateStep(e)
         .success(function (data) {
             //Call the redirect function
             $scope.reDirect(stepId, data);
         })
         .error(function (error) {

         });
    };

更新:弃用通知

.success服务的.error$http方法已被弃用。而是使用.then.catch方法。

$scope.edit = function (e) {
     var stepId = e;                
     TemplateService.editTemplateStep(e)
         .then (function (result) {
             //Call the redirect function
             $scope.reDirect(stepId, result.data);
         })
         .catch (function (error) {
             //log error
         });
    };

请注意.then以不同于.success方法的方式返回数据。

有关.success弃用的详细信息,请参阅AngularJS $http service API Reference