我有一个班级
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();
}
}
}
答案 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)
当您从客户端向服务器发送数据时,根据最佳做法,数据应以XML
或JSON
的形式发送。
因此,您的类对象的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。地址