我已经创建了一个自定义对象,我希望以JSON方式返回到javascript方法。该对象是在C#中创建的一个类。
将此对象从PageMethod(如果您喜欢的[WebMethod])返回到javascript onPageMethodCallback()函数的最佳方法是什么?我需要能够通过javascript访问该对象的属性并根据(可能使用jQuery)更新DOM。
谢谢StackOverflow! :)
答案 0 :(得分:12)
服务器端的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。更具体地说,这是a post about calling PageMethods with jQuery。
服务器将您的返回类型序列化为JSON,您将能够按预期访问Name类的属性。在此示例中, msg.d.FirstName 和 msg.d.LastName 。
请注意.d。 It's a security feature added in 3.5,并且不存在于2.0中。
答案 1 :(得分:3)
这是关于使用jQuery的asmx中的JSON序列化WebMethods这一主题的相当广泛的帖子。它应该做的伎俩。
http://encosia.com/2008/03/27/using-jquery-to-consume-aspnet-json-web-services/
如果你想使用ASP.NET AJAX而不是jQuery来执行AJAX,那么你应该看一下为你创建一个javascript代理的ScriptManager和ServiceReference。它非常强大,我们在一些非常大的应用程序中成功使用它。找到这篇文章:
http://dotnetslackers.com/articles/ajax/JSON-EnabledWCFServicesInASPNET35.aspx