【问题标题】:Convert List<string> to Json Array on client ASP.NET MVC在客户端 ASP.NET MVC 上将 List<string> 转换为 Json 数组
【发布时间】:2012-08-14 19:54:02
【问题描述】:

我在服务器上有一个字符串列表,我将其发送到部分视图。

List<string> list = new List<string>();
list.Add("1");
list.Add("2");

在客户端,我将列表转换为 json,如下所示:

var stringList = @(Html.Raw(Json.Encode(this.Model.StringList)));
alert(stringList );

警报回复是:1,2,我应该得到["1","2"]

关于如何处理这个问题的任何线索?

非常感谢。

【问题讨论】:

  • 转到 Web 浏览器的控制台,然后输入 alert(["1", "2"])。点击输入。它将提醒1,2,因为["1", "2"].toString() === "1,2"。你应该尝试console.log(stringList) 看看它到底是什么——也许你已经拥有了你想要的东西。

标签: javascript jquery asp.net-mvc


【解决方案1】:

您要求的是一个简单明了的数组,而不是 json。

除此之外,只需在其周围添加括号:

var stringList = [@(Html.Raw(Json.Encode(this.Model.StringList)))];
alert(stringList ); 

这适用于数字,但如果您打算将它与真正的字符串值(如单词等)一起使用,您将需要一种不同的方法。目前尚不清楚您是否打算将其与视为字符串的数字一起用作示例。

【讨论】:

  • 我不明白你为什么要告诉他手动添加方括号。 Json.Encode 已经添加了方括号。
  • 不,在这种情况下,Json.Encode 输出一个逗号分隔的不带括号的值列表。仅当被编码的对象是具有对象列表属性的对象时,才会输出括号。这是一年半前创建的较旧答案,较新版本的 MVC 可能会更改此行为。
猜你喜欢
  • 2013-03-13
  • 2019-02-27
  • 1970-01-01
  • 1970-01-01
  • 2015-06-05
  • 1970-01-01
  • 2017-12-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多