在AngularJS $ routeParams中访问ASP.NET MVC路由参数

时间:2016-01-11 11:29:09

标签: angularjs asp.net-mvc asp.net-mvc-routing angular-routing ngroute

我是在Asp.net mvc中使用AngularJs路由的新手。我已经在互联网上阅读了很多文章,在路由方面可能仍然有点混乱。

我的问题是,我有多个MVC控制器采用这两个例如Reviews和Broker。

在_Layout.cshtml中

@Html.ActionLink("See Review", "Index", "Reviews", new { reviewId = 1299 }, null)

我对评论控制器的索引操作采用了reviewId。我的网址现在采用以下格式:

http://localhost:52881/Reviews/Index?reviewId=1299

我想在我的角度控制器中得到这个评论,因此我宣布我的路线为:

var reviewModule = angular.module('reviewModule')
reviewModule.config(function ($routeProvider) {
var basePath = 'App/views/partial/';
$routeProvider.
    when('/', {
        redirectTo: '/reviews'
    }).
    when('/reviews', {
        templateUrl: basePath + 'review/review.html',
        controller: 'reviewscontroller'
    });

});

现在,当我运行应用程序并单击“查看评论”链接时,我的网址变为

http://localhost:52881/Reviews/Index?reviewId=1299#/reviews/

这可能是因为角度路由引擎在mvc查询字符串结束后获取了url并调用了redirectTo'/ reviews'。

在我的reviewscontroller.js中,当我尝试获取reviewId时,我得到一个未定义的可能是因为#/ reviews /到angular路线后没有传输。以下是我在reviewscontroller.js控制器中获取参数的方法。

console.log($routeParams.listingNumber);

我的问题是,asp.net mvc动作参数如何成为角度路径的一部分,以便以后可以访问它们进行进一步处理?

0 个答案:

没有答案