我创建了一个定制对象,希望以JSON格式返回到JavaScript方法。这个对象是在C#中作为类创建的。
什么是从PageMethod(如果您喜欢[WebMethod])最好的方法将此对象返回到javascript onPageMethodCallback()函数?我需要能够通过javascript访问此对象的属性并根据DOM更新它(可能使用jQuery)。
谢谢StackOverflow! :)
我创建了一个定制对象,希望以JSON格式返回到JavaScript方法。这个对象是在C#中作为类创建的。
什么是从PageMethod(如果您喜欢[WebMethod])最好的方法将此对象返回到javascript onPageMethodCallback()函数?我需要能够通过javascript访问此对象的属性并根据DOM更新它(可能使用jQuery)。
谢谢StackOverflow! :)
在服务器端上,ASP.NET AJAX将处理对象的序列化。例如:
public class Name
{
public string FirstName;
public string LastName;
}
[WebMethod]
public Name GetName()
{
Name name = new Name();
name.FirstName = "Dave";
name.LastName = "Ward";
return name;
}
然后,您可以使用与JD连接的基本相同的方法直接从jQuery调用PageMethod。 更具体地说,这里是一个关于使用jQuery调用PageMethods的帖子。
服务器将以JSON格式序列化您的返回类型,您将能够按预期访问Name类的属性。例如,msg.d.FirstName和msg.d.LastName。
只要注意.d. 这是3.5新增的安全功能,在2.0中不存在。
这是一个关于如何使用JSON序列化WebMethods和jQuery一起使用的相当详细的帖子。这应该能解决你的问题。
使用jQuery消费ASP.NET JSON Web服务
如果您想要使用ASP.NET AJAX而不是jQuery来执行AJAX请求,那么您应该看看ScriptManager和ServiceReference,它们可以为您创建javascript代理。它非常强大,我们在一些相当大的应用程序中成功使用它。发现了这篇文章:
将此翻译成中文:http://dotnetslackers.com/articles/ajax/JSON-EnabledWCFServicesInASPNET35.aspx http://dotnetslackers.com/articles/ajax/JSON-EnabledWCFServicesInASPNET35.aspx