【问题标题】:How to pass class object in angularjs function如何在angularjs函数中传递类对象
【发布时间】:2017-04-05 16:01:18
【问题描述】:

我有课

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();
            }
        }
    }

【问题讨论】:

标签: angularjs


【解决方案1】:

你需要传递带有类属性的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.");
            })
        };

【讨论】:

    【解决方案2】:

    当您从客户端向服务器发送数据时,根据最佳实践,数据应该以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); 
    

    【讨论】:

      【解决方案3】:

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

      $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。地址

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-04-05
        • 1970-01-01
        • 2012-06-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-26
        相关资源
        最近更新 更多