c# - 是否可以将数据从 AngularJS 传递到 Web 服务中带有模型参数的函数?

标签 c# javascript angularjs web-services

我想知道是否可以将数据从 AngularJS 传递到 Web 服务中带有模型参数的函数?

这是我的网络服务代码:

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

这是我的 angularJS 代码:

$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');
    });
}

最佳答案

这是非常可行的。在最坏的情况下,您可以像这样在您的服务方法中从 Request.Form 中提取参数。

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

所以这是可能的,但我确信存在更简洁的方法来做到这一点。

关于c# - 是否可以将数据从 AngularJS 传递到 Web 服务中带有模型参数的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24155218/

相关文章:

c# - "ValidateAppxPackage"任务意外失败

javascript - 如何在我的手指移动时一直使用 jquery mobile 获取 XY 坐标?就像桌面的 mousemove

javascript - 下面的代码中如何有多个 return 语句?谁能解释一下它在这里是如何工作的?

c# - 根据 URL 重定向 ASP.NET 中的网页

c# - 我可以压缩 Response.write 吗?

c# - 如何在 C# Silverlight App 中使字符串值从一个区域访问到另一个区域

javascript - Angular - 检查数据是否存在?

javascript - 动态更新 CSS 条形图的宽度

javascript - 无法在 settimeout 内将参数传递给 this.style

angularjs - 如何使用AngularJS中的某些数据进行$ http GET?