【问题标题】:Calling WCF service from jQuery Ajax using POST method使用 POST 方法从 jQuery Ajax 调用 WCF 服务
【发布时间】:2012-03-05 14:00:40
【问题描述】:

我有以下 WCF 方法

[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "UserService/AddUser", BodyStyle = WebMessageBodyStyle.WrappedRequest)]
public User AddUser(string LoginId, string Name)
{
    var user = input;

    // Some business logic here

    return user;
}

我有一个 jQuery Ajax 客户端代码如下

<script type="text/javascript">
    $(document).ready(function () {

        $("#submit").click(function () {
            var input =
            {
                LoginId: $("#LoginId").val(),
                Name: $("#Name").val()
            };

            $.ajax({
                cache: false,
                type: "POST",
                async: false,
                url: "http://localhost:2000/UserService/AddUser",
                data: JSON.stringify(input),
                contentType: "application/json",
                dataType: "json",
                success: function (userViewModel) {
                    var user = userViewModel;
                    alert(user);
                }
            });
        });
    });
</script>

一旦 ajax 调用 AddUser 方法 LoginId 和 Name 值在 AddUser 方法的两个参数中设置,但是,我想要做的是具有如下的方法签名

public User AddUser(User user)

当然,User 类中有 LoginId 和 Name 属性。

如何在不手动设置值的情况下自动将客户端参数绑定到用户实例?

【问题讨论】:

    标签: wcf jquery


    【解决方案1】:

    我自己找到了解决办法

    我应该用对象名称包装 json 数据,如下所示:

            var input =
            {
                "user": 
                {
                    "LoginId": $("#LoginId").val(),
                    "Name": $("#Name").val()
                }
            };
    

    【讨论】:

      猜你喜欢
      • 2012-03-05
      • 1970-01-01
      • 2016-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-27
      • 2014-07-08
      • 1970-01-01
      相关资源
      最近更新 更多