如何将参数从JQuery传递到ASP.NET webmethod?

我在下面编写了这个调用webmethod的jQuery ajax方法。 调用很好,除了参数是User对象有空字段。 我在调试时可以看到firebug中的值,但是它们没有通过webmethod中的User对象参数

我试图从我的jQuery方法传递给Web方法有两个值,它们是“UserID”(Guid)和“About”(字符串),它们都是User类的属性,但在服务端,User对象只是空的。 请帮我识别我错过的一切。 谢谢……见下面的代码。

JQuery的

function updatePersonalProfile(userId) { var user = {}; user.UserID = userId; var updatedPersonalProfile = $(".txtPersonalProfile").html(); user.About = updatedPersonalProfile; $.ajax({ type: "POST", url: "PresentationService.asmx/updateUserPersonalProfile", dataType: "json", data: "{user:" + JSON.stringify(user) + "}", contentType: "application/json; charset=utf-8", success: function(response) { }, error: function(response) { alert(response.d); } }); } 

WEBMETHOD

  [WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public void UpdateUserPersonalProfile(User user) { if (null == portfolioService) { portfolioService = new PortfolioService(); } portfolioService.updateUserPersonalProfile(user); } 

我认为在定义数据时你缺少用户的单引号。 请使用以下代码更改数据行:

 data: "{'user':" + JSON.stringify(user) + "}", 

所以我想到了我做错了什么,这两个字段在Domain对象中都有私有的setter。 因此jQuery无法设置属性。

谢谢大家