2012-02-14 28 views
8

を使用してjQueryのアヤックスからWCFサービスを呼び出すと、私は、次のWCF方法POSTメソッド

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

を持っているとAJAXは、は、AddUser方法ログインIDと名前を起動したら、私は

<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> 

以下のようにjQueryのAjaxクライアントコードを持っています値はAddUserメソッドの2つのパラメータで設定されていますが、私がしたいのは、以下のようなメソッドシグネチャを持つことです。

public User AddUser(User user) 

もちろん、UserクラスにはLoginIdとNameプロパティがあります。

手動で値を設定せずにクライアントのパラメータを自動的にバインドする方法を教えてください。

答えて

5

私は次のようにオブジェクト名でJSONデータをラップする必要があります自分自身

によって解決策を見つけた:

 var input = 
     { 
      "user": 
      { 
       "LoginId": $("#LoginId").val(), 
       "Name": $("#Name").val() 
      } 
     }; 
関連する問題