将数组从 JavaScript 传递到 C# 的最佳方法?

Posted

技术标签:

【中文标题】将数组从 JavaScript 传递到 C# 的最佳方法?【英文标题】:Best way to pass an array from JavaScript to C#? 【发布时间】:2010-09-22 17:30:45 【问题描述】:

我需要将数组从 javascript 传递到 C# 中的页面方法。我尝试在 IList 的 C# 方法中使用参数以及 string[] 数组。两种方式都会抛出异常“无法将system.string类型的对象转换为xxx”,其中xxx是C#方法中的参数类型。我将 jQuery 中的对象作为 json 对象传递,看起来它正在正常通过。这是它的样子:

"testNumbers":"5555555555,3333333333,4444444444"

我在这里做错了什么?

编辑:C# 代码:

[WebMethod()]
public static void ProcessAction(string[] testNumbers)

    var dataProvider = new DataProvider();
    dataProvider.ProcessAction(testNumbers);

【问题讨论】:

【参考方案1】:

嗯,有两件事:

    JSON 数组周围有方括号 不引用 JSON 数字。

试试这个:

"testNumbers": [5555555555,3333333333,4444444444]

【讨论】:

【参考方案2】:

您需要使用其中一种 .NET JSON 反序列化器:

http://msdn.microsoft.com/en-us/library/bb299886.aspx

【讨论】:

【参考方案3】:
"testNumbers":["5555555555","3333333333","4444444444"] 

我是否应该与反序列化器一起解决问题。请参阅http://www.json.org/,它对 json 语法有很好的图形表示。

【讨论】:

以上是关于将数组从 JavaScript 传递到 C# 的最佳方法?的主要内容,如果未能解决你的问题,请参考以下文章

通过表单将变量从 Javascript 传递到 C#?

将 C# 数组传递给 Javascript

将列表项从 c# 传递到 javascript 数组

将列表字符串从 C# 传递到 JavaScript

将 C# 模型从视图传递到 Javascript

将结构数组从 C# 传递到 C++