我如何将参数从 JQuery 传递到 ASP.NET webmethod?
How do i pass parameters from JQuery to ASP.NET webmethod?
我写了这个 jQuery ajax 方法,在下面调用了一个 web 方法。除了作为用户对象的参数具有空字段外,调用进行得很好。我在调试时可以看到 firebug 中的值,但它们没有通过 webmethod
中的用户对象参数
我试图将两个值从我的 jQuery 方法传递给 Webmethod,它们是 "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]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public void UpdateUserPersonalProfile(User user)
{
if (null == portfolioService)
{
portfolioService = new PortfolioService();
}
portfolioService.updateUserPersonalProfile(user);
}
我认为您在定义数据时缺少 user 中的单引号。请使用以下代码更改数据行:
data: "{'user':" + JSON.stringify(user) + "}",
所以我想我做错了什么,这两个字段在域对象中都有私有 setter。因此 jQuery 无法设置属性。
谢谢大家
我写了这个 jQuery ajax 方法,在下面调用了一个 web 方法。除了作为用户对象的参数具有空字段外,调用进行得很好。我在调试时可以看到 firebug 中的值,但它们没有通过 webmethod
中的用户对象参数我试图将两个值从我的 jQuery 方法传递给 Webmethod,它们是 "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]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public void UpdateUserPersonalProfile(User user)
{
if (null == portfolioService)
{
portfolioService = new PortfolioService();
}
portfolioService.updateUserPersonalProfile(user);
}
我认为您在定义数据时缺少 user 中的单引号。请使用以下代码更改数据行:
data: "{'user':" + JSON.stringify(user) + "}",
所以我想我做错了什么,这两个字段在域对象中都有私有 setter。因此 jQuery 无法设置属性。
谢谢大家