Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用angular JS将javascript对象从视图传递到控制器?_Javascript_Asp.net_Angularjs_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

如何使用angular JS将javascript对象从视图传递到控制器?

如何使用angular JS将javascript对象从视图传递到控制器?,javascript,asp.net,angularjs,asp.net-mvc,asp.net-mvc-4,Javascript,Asp.net,Angularjs,Asp.net Mvc,Asp.net Mvc 4,我尝试使用angularJS$http服务将customer类对象传递给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' };

我尝试使用angularJS$http服务将customer类对象传递给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);
}
但是,在上述控制器操作中,客户对象始终作为null传递。我错过什么了吗


请帮我解决这个问题

如果希望在AJAX请求中的JSON对象中同时发送多个参数,并将其作为服务器端的对象捕获,则应使用
POST
请求

$http.post(url, $scope.objCustomer)
     .then(successCallback, errorCallback); 

如果希望在AJAX请求中的JSON对象中同时发送多个参数,并将其作为服务器端的对象捕获,则应使用
POST
请求

$http.post(url, $scope.objCustomer)
     .then(successCallback, errorCallback); 

当您实际向服务器发送数据时,您正在
$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
 })

当您实际向服务器发送数据时,您正在
$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
 })

如果希望在JSON对象中发送多个参数,则应该使用POST而不是GETPost控制器的“Home/GetCustbyID”代码。如果这是一个临时身份证,为什么你需要姓名和部门?谢谢你的快速回复@Arkantos。是 啊它的工作后,我把它改为后的方法很好。谢谢:)如果你想在一个JSON对象中发送多个参数,你应该使用POST而不是GETPost你的控制器“Home/GetCustbyID”代码。如果这是一个临时身份证,为什么你需要姓名和部门?谢谢你的快速回复@Arkantos。是 啊它的工作后,我把它改为后的方法很好。谢谢:)是的。。!你上面贴的是正确的。下面的代码在我将其更改为POST方法后对我有效$http({url:“Home/GetCustbyID”,方法:“POST”,数据:{objCustomer:$scope.objCustomer}})。然后(函数(响应){};});但是我用了'data'而不是params关键字。是的。。!你上面贴的是正确的。下面的代码在我将其更改为POST方法后对我有效$http({url:“Home/GetCustbyID”,方法:“POST”,数据:{objCustomer:$scope.objCustomer}})。然后(函数(响应){};});但是我用了'data'而不是params关键字。