我有以下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属性。
如何自动将客户端参数绑定到用户实例而不手动设置值?
答案 0 :(得分:5)
我自己找到了解决方案
我应该用对象名称包装json数据,如下所示:
var input =
{
"user":
{
"LoginId": $("#LoginId").val(),
"Name": $("#Name").val()
}
};