【问题标题】:Passing JSON to a PageMethod that expects a List<T> parameter将 JSON 传递给需要 List<T> 参数的 PageMethod
【发布时间】:2010-01-13 19:54:28
【问题描述】:

我有一个带有以下签名的 ASP.NET PageMethod:

<WebMethod()> _
Public Shared Function SaveCodes(ByVal codes As List(Of Code)) As String

我正在尝试从客户端将 JSON 对象传递给 PageMethod,但我收到错误,即无法将类型 String 转换为 List&lt;Code&gt; 类型。

这是我在客户端上构建并发送到方法的 json:

{
“代码”:{
{ "companyID": "00000000-0000-0000-0000-000000000000", "customerType":"1", "code":"11" },
{ "companyID": "00000000-0000-0000-0000-000000000000", "customerType":"1", "code":"21" }
}
}

这是我的 PageMethod 调用,(objects 是上面的 json 字符串):

PageMethods.SaveCodes(objects, successFn, errorFn);

我已经能够传递简单的数据类型和 Code 类的单个实例,但我似乎找不到将 List 传递给服务器方法的魔力。谁能告诉我我做错了什么?

【问题讨论】:

    标签: asp.net json pagemethods


    【解决方案1】:

    我能够弄清楚。下面列出了正确的符号。缺少的主要部分是每个对象的 __type 属性。我不得不在从 PageMethod 返回的 List 中四处挖掘才能找到它。

    {"codes":
    [  
    {"CompanyID":"00000000-0000-0000-0000-000000000000","Code":"11    ","CustomerType":"1","__type":"Code"},
    {"CompanyID":"00000000-0000-0000-0000-000000000000","Code":"21    ","CustomerType":"1","__type":"Code"}
    ]
    }
    

    【讨论】:

    • 我最终写了一篇关于此的博客文章以获得更详细的描述:brentman.com/blog/2010/01/15/…
    • 谢谢!为此,尤其是您的博客文章。为我节省了大量时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-20
    • 2014-04-06
    • 1970-01-01
    相关资源
    最近更新 更多