在MVC中将2D对象数组C#转换为Javascript

时间:2016-04-15 18:41:37

标签: javascript c# arrays asp.net-mvc serialization

我将2D对象数组转换为javascript,但我遇到了JSON序列化程序的问题。

我的控制器有这个:

object[,] array = new object[,] {{"Name", "Donuts eaten"},
                                          {"Michael", 5},
                                          {"Elisa", 7},
                                          {"Robert", 3},
                                          {"John", 2},
                                          {"Jessica", 6},
                                          {"Aaron", 1},
                                          {"Margareth", 8}};
ViewBag.DataArray =  JsonConvert.SerializeObject(array);

我的脚本使用:

var dataArray = '@ViewBag.DataArray';

然而,当脚本运行时,我得到了这个:

var dataArray = '[["Name","Donuts eaten"],["Michael",5],["Elisa",7],["Robert",3],["John",2],["Jessica",6],["Aaron",1],["Margareth",8]]';

任何帮助或替代方法将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:2)

当你使用@符号时,razor将对表达式的结果进行HTML编码,后跟@。如果您不希望对内容进行编码,请使用Html.Raw方法。

var dataArray = '@Html.Raw(ViewBag.DataArray)';

现在剃刀将产生以下输出。

var dataArray = '[["Name","Donuts eaten"],["Michael",5],["Elisa",7],["Robert",3],
                                    ["John",2],["Jessica",6],["Aaron",1],["Margareth",8]]';