我尝试使用angularJS $ http服务将客户类对象传递给Asp.net MVC控制器。
var app = angular.module("myApp", []);
app.controller("myCtrl", function ($scope,$http)
{
$scope.getRecord = function () {
$scope.objCustomer = { Id: 5, Name: 'sasi', Dept: 'IT' };
$http({ url: "Home/GetCustbyID",
method: "GET",
params: {objCustomer: $scope.objCustomer} })
.then(function (response)
{
//success code
};});
}});
控制器动作定义如下:
public JsonResult GetCustbyID(Customer objCustomer)
{
return Json(objCustomer, JsonRequestBehavior.AllowGet);
}
但是在上面的控制器操作中,customer对象始终作为null传递。我错过了什么吗?
请帮我们解决这个问题。
答案 0 :(得分:0)
如果您希望在AJAX请求中的JSON对象中一次发送多个参数,并将其捕获为服务器端的对象,则应使用POST
请求。
$http.post(url, $scope.objCustomer)
.then(successCallback, errorCallback);
答案 1 :(得分:0)
当您实际向服务器发送数据时,您将发布在$http
。
var app = angular.module("myApp", []);
app.controller("myCtrl", function ($scope,$http)
{
$scope.getRecord = function () {
$scope.objCustomer = { Id: 5, Name: 'sasi', Dept: 'IT' };
$http({
url: "Home/GetCustbyID",
method: "POST",
data: $.param({ objCustomer : $scope.objCustomer })
})
.then(function(response) {
//success code
};});
}});
在其他情况下如果您想以json字符串发送/传递数据,则必须使用stringify
这样的
var data = $.param({
json: JSON.stringify({
name: $scope.name
})
});
$http.post("/path_of_controller", data).success(function(data, status) {
//do whatever you like
})