如何在angularjs函数中传递类对象

时间:2016-11-22 04:57:45

标签: angularjs

我有一个班级

public class Customer
{
    private int _Id;
    public int Id
    {
        get { return _Id; }
        set { _Id = value; }
    }
    private String _Name;
    public String Name
    {   
        get { return _Name; }
        set { _Name = value; }
    }
    private String _Address;
    public String Address
    {
        get { return _Address; }
        set { _Address = value; }
    }      
}

我需要使用此类保存数据。我需要知道如何在数据函数中调用这个类

  $scope.Save = function () {
            var httpreq = {
                method: 'POST',
                url: 'ajs.aspx/Save',
                headers: {
                    'Content-Type': 'application/json; charset=utf-8',
                    'dataType': 'json'
                },
                data: { //** Here How to call assign object value for my customer class **//  }
            }
            $http(httpreq).success(function (response) {
               alert("Saved successfully.");
            })
        };

如何在此数据部分中创建类对象并为我的客户类分配值。

在我的网络方法

[System.Web.Services.WebMethod()]
    public static void Save(Customer objcsr)
    {
        using (SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString))
        {
            using (SqlCommand cmd = new SqlCommand())
            {
                cmd.Connection = con;
                cmd.CommandText = "insert into customer (Name, Address) values (@Name, @Address);";
                cmd.Parameters.AddWithValue("@Name", objcsr.Name);
                cmd.Parameters.AddWithValue("@Address", objcsr.Address);
                con.Open();
                cmd.ExecuteNonQuery();
                con.Close();
            }
        }
    }

3 个答案:

答案 0 :(得分:0)

您需要使用类属性传递json格式数据,请尝试以下代码

Var objcsr={Id:"1",Name:"Donald Trump",Address:"Alien Planet"}

$scope.Save = function () {
            var httpreq = {
                method: 'POST',
                url: 'ajs.aspx/Save',
                headers: {
                    'Content-Type': 'application/json; charset=utf-8',
                    'dataType': 'json'
                },
                data: objcsr
            }
            $http(httpreq).success(function (response) {
               alert("Saved successfully.");
            })
        };

答案 1 :(得分:0)

当您从客户端向服务器发送数据时,根据最佳做法,数据应以XMLJSON的形式发送。

因此,您的类对象的JSON可能类似于

var obj = {
   "id" : "YOUR ID",
   "name" : "YOUR NAME",
   "address" : "YOUR ADDRESS"
}

此外,根据最佳实践,http请求应使用工厂或服务进行。

所以你的工厂应该像

angular.module("YOUR_MODULE").factory('YOUR_SERVICE',function($http,$q){

    var obj = {};
    obj.saveObject = function(data){
       var defer = $q.defer();
       $http.post("YOUR URL",data).then(function(response){
        defer.resolve(response);
       },function(error){
        defer.reject(error);
      });
       return defer.promise;

    }
   return obj;
});

因此您可以将控制器调用作为

$scope.Save = function (data) {
     YOUR_SERVICE.saveObject(data);
}

可以像

那样调用
var obj = {
       "id" : "YOUR ID",
       "name" : "YOUR NAME",
       "address" : "YOUR ADDRESS"
    }
    $scope.Save(obj); 

答案 2 :(得分:0)

如果您从表单元素获取它,那么您应该像

一样使用它
$scope.Save = function () {
            var customerObject={
                                "Id": $scope.customerId,
                                "Name": $scope.customerName,
                                "Address":$scope.customerAddress  
                              };                                  
            var httpreq = {
                method: 'POST',
                url: 'ajs.aspx/Save',
                headers: {
                    'Content-Type': 'application/json; charset=utf-8',
                },
                data: { customerObject }
            }
            $http(httpreq).success(function (response) {
               alert("Saved successfully.");
            })
        };

另请注意,您传递的objectName及其各自的属性应与webmethod中的objectName的属性匹配。例如

您的属性是 您对应的json对象必须具有相同的属性

Id:$ scope。 ID

名称:$ scope。名称

地址:$ scope。地址