![](/img/trans.png)
[英]How to pass a composite array from Javascript to WEB API controller HttpPOST?
[英]How to pass array from controller to javascript?
将值插入Session["LatLon"]
,将其保存为 JSON 而不是 C# 字符串数组。
string[][] mystringarr = ...
Session["LatLon"] = JsonConvert.SerializeObject(mystringarr);
并在视图中使用
var data = <%= Session["LatLon"] %>;
所以它会产生类似的东西
var data = [["1.0", "1.4"], ["4.6","4.8"]];
使用 JSON.NET http://www.newtonsoft.com/json/help/html/M_Newtonsoft_Json_JsonConvert_SerializeObject.htm
您当前观察到的是执行Session["LetLon"]
对象的.ToString
方法的结果。
您打算接收的是var data = [[1, 2], [3, 4]];
.
因此,您可以简单地编写二维数组的正确字符串化。 我建议编写简单的扩展方法:
public static string ToJsString(this string[,] array) {
return Enumerable.Range(0, array.GetLength(0))
.Aggregate(new StringBuilder(),
(sbi, i) => sbi.AppendFormat(i == 0 ? "{0}" : ", {0}",
Enumerable.Range(0, array.GetLength(1))
.Aggregate(new StringBuilder(),
(sbj, j) => sbj.AppendFormat(j == 0 ? "{0}" : ", {0}", array[i,j]),
sbj => string.Format("[{0}]", sbj))),
sb => string.Format("[{0}]", sb));
}
为了使用它,然后写入var data = <%= ((string[,])Session["LatLon"]).ToJsString() %>
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.