我有一个以下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;
}
Run Code Online (Sandbox Code Playgroud)
我有一个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>
Run Code Online (Sandbox Code Playgroud)
一旦ajax调用AddUser方法LoginId和Name值在AddUser方法的两个参数中设置,但是,我想要做的是拥有一个方法签名如下
public User AddUser(User user)
Run Code Online (Sandbox Code Playgroud)
当然,User类中包含LoginId和Name属性.
如何在不设置手动值的情况下自动将客户端参数绑定到用户实例?
我自己找到了解决方案
我应该用对象名称包装json数据,如下所示:
var input =
{
"user":
{
"LoginId": $("#LoginId").val(),
"Name": $("#Name").val()
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12931 次 |
| 最近记录: |