我是AngularJS的新手,尝试将ID从url传递给MVC控制器JSON方法,然后将JSON返回到角度范围。
这是我的MVC控制器:
public ActionResult Client(int clientid)
{
return View();
}
public JsonResult GetClient(string clientid)
{
ClientDao clientDao = new ClientDao();
Client client = clientDao.getClientById(int.Parse(clientid));
return new JsonResult { Data = client, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
}
这是我的Angular .js文件:
var app = angular.module('myapp', ['ngRoute']);
app.config(function ($routeProvider, $locationProvider) {
$routeProvider
.when('/Home/Client/:clientid', {
controller: 'ClientCtrl'
})
.otherwise({
redirectTo: "/Home/Index"
})
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
});
app.controller("ClientCtrl", function ($scope, $http, $routeParams) {
// alert($routeParams.clientid);
$http({
url: "/Home/GetClient/",
params: {clientid: $routeParams.clientid},
method: "get"
})
.then (function (response) {
$scope.client = response.data;
})
});
问题是clientid
中的参数$routeParams
始终未定义。我该如何解决这个问题?
更新:以下是我的链接的显示方式:http://something.com/Home/Client/20
答案 0 :(得分:1)
您在MVC控制器中定义操作的方式,假设默认路由是唯一定义的路径,它希望您的网址看起来像http://something.com/Home/Client?clientid=20
解决方案: