如何使用angular JS将javascript对象从视图传递到控制器?
我尝试使用angularJS$http服务将customer类对象传递给Asp.net MVC控制器如何使用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' };
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关键字。