我是Angularjs的新手,我正在构建一个带有一些Angularjs视图的ASP.NET MVC 6应用程序,我有一个问题是将参数从MVC动作链接传递给AngularJS控制器,我的MVC动作链接的URL如下:{ {3}},在我的Details.cshtml页面中,托管Angularjs以显示站点位置图,
在我的MVC路线中:
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
我的MVC代码如下:
public JsonResult GetSiteInfo(int SiteId)
{
var sList = _context.Station.Where(s => s.Category.Site.SiteID == SiteId);
return Json(sList);
}
Angularjs代码如下:
var app = angular.module('myApp', ['uiGmapgoogle-maps','ngRoute']);
app.controller('mapController', function ($scope, $http,$window, $location, $routeParams, SiteID) {
var sid = SiteID.get({ id: $routeParams.someId });
//Populate Site location information by site ID
$http.get('/Sites/GetSiteInfo').
params: {
siteId: siteId
}
}).then(function (data) {
$scope.locations = data.data;
}, function () {
alert('Error');
});

我想从Angularjs中的URL中检索siteId参数并过滤结果,目前我无法从Angularjs代码中的URl中检索参数,我不确定我做错了什么,请指教。
更新 我从这个链接找到了一个已经解决的类似帖子,但它似乎对我不起作用, http://localhost/Sites/Details/1,
答案 0 :(得分:0)
在控制器中尝试$routeParams.siteId
。
console.log("site id = "+$routeParams.siteId);