我是在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动作参数如何成为角度路径的一部分,以便以后可以访问它们进行进一步处理?