【问题标题】:Custom C# data transfer objects from javascript PageMethods来自 javascript PageMethods 的自定义 C# 数据传输对象
【发布时间】:2010-10-02 09:30:36
【问题描述】:

我创建了一个自定义对象,我想以 JSON 格式将其返回给 javascript 方法。该对象是在 C# 中作为类创建的。

将此对象从 PageMethod(如果您愿意,可以使用 [WebMethod])返回到 javascript onPageMethodCallback() 函数的最佳方法是什么?我需要能够通过 javascript 访问该对象的属性并根据(可能使用 jQuery)更新 DOM。

感谢 StackOverflow! :)

【问题讨论】:

    标签: asp.net javascript ajax json asp.net-ajax


    【解决方案1】:

    服务器端的 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.FirstNamemsg.d.LastName

    请注意 .d。 It's a security feature added in 3.5,在 2.0 中不存在。

    【讨论】:

    • 戴夫,你写了一篇好文章,但没有被选为最佳答案!?!去搞清楚。我的团队喜欢你的博客,你向我们介绍了我们在生产中使用的很棒的技术。继续努力。
    • 先生。罗宾斯是正确的,这应该是答案。谢谢。
    【解决方案2】:

    这里有一篇相当广泛的文章,主题是使用带有 jQ​​uery 的 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-01
      相关资源
      最近更新 更多