I want to know if it is possible to pass data from AngularJS to a function with a model parameter in webservice?
Here is my webservice code:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public void AddUser(
//string FirstName, string LastName, string Mi //this works
User user //not working
)
{
SqlConnection con = new SqlConnection(@"Data Source=########;Initial Catalog=test001;Persist Security Info=True;User ID=########;Password=########");
SqlCommand cmd = new SqlCommand("insert into [dbo].[User] values(@fname,@lname,@mi)", con);
con.Open();
cmd.Parameters.AddWithValue("@fname", user.FirstName);
cmd.Parameters.AddWithValue("@lname", user.LastName);
cmd.Parameters.AddWithValue("@mi", user.Mi);
cmd.ExecuteNonQuery();
con.Close();
}
Here is my angularJS code:
$scope.Create = function () {
var user = {
FirstName: $scope.FirstName,
LastName: $scope.LastName,
Mi: $scope.Mi
};
$http.post('testws.asmx/AddUser', user, {
headers: { 'Content-Type': 'application/json; charset=utf-8' }
}).success(function (data) {
alert('Success');
});
}
It is pretty doable. At worst case, you can extract parameters from Request.Form in your service method like this.
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public void AddUser()
{
/// here you get your json object from post data
var serializedUser = Request.Form["user"] as string;
var user = JsonConvert.DeserializeObject<User>(serializedUser);
SqlConnection con = new SqlConnection(@"Data Source=172.16.176.74;Initial Catalog=test001;Persist Security Info=True;User ID=onbapps;Password=sdu_123456");
SqlCommand cmd = new SqlCommand("insert into [dbo].[User] values(@fname,@lname,@mi)", con);
con.Open();
cmd.Parameters.AddWithValue("@fname", user.FirstName);
cmd.Parameters.AddWithValue("@lname", user.LastName);
cmd.Parameters.AddWithValue("@mi", user.Mi);
cmd.ExecuteNonQuery();
con.Close();
}
So it is possible, but I'm sure there exist much neater ways of doing this.
In Service or factory you can write like
var promise = $http({
url: "testws.asmx/AddUser"+ "/Post",
method: "POST",
data: user
});
return promise;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With