使用 POST 方法从 jQuery Ajax 调用 WCF 服务
Posted
技术标签:
【中文标题】使用 POST 方法从 jQuery Ajax 调用 WCF 服务【英文标题】:Calling WCF service from jQuery Ajax using POST method 【发布时间】: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 属性。
如何在不手动设置值的情况下自动将客户端参数绑定到用户实例?
【问题讨论】:
【参考方案1】:我自己找到了解决办法
我应该用对象名称包装 json 数据,如下所示:
var input =
"user":
"LoginId": $("#LoginId").val(),
"Name": $("#Name").val()
;
【讨论】:
以上是关于使用 POST 方法从 jQuery Ajax 调用 WCF 服务的主要内容,如果未能解决你的问题,请参考以下文章
jQuery – AJAX get() 和 post() 方法
.NET (ApiController) / jQuery .ajax:从 POST 返回啥?
关于JQuery中 $.get() $.post() $.ajax()的区别和使用