如何将List <string>分配给ViewBag并在JavaScript中使用?

Glo*_*Jim 3 javascript c# asp.net-mvc asp.net-mvc-3

我创建并将值分配给控制器中的字符串列表.我想将值列表分配给JavaScript变量.我怎样才能做到这一点?

控制器:

List<string> fruits = new List<string>();
list.Add('Apple');
list.Add('Banana');
list.Add('Kiwi');
ViewBag.FruitList = fruits;
Run Code Online (Sandbox Code Playgroud)

视图:

var fruitList = '@ViewBag.FruitList';
Run Code Online (Sandbox Code Playgroud)

当我运行程序fruitList回来时System.Collections.Generic.List 1[System.String]

Ehs*_*jad 10

方式1:

你可以使用Html.Raw()Json.Encode为它:

var fruitList = @Html.Raw(Json.Encode(ViewBag.FruitList));
Run Code Online (Sandbox Code Playgroud)

方式2:

你可以Json.Parse()结合使用Html.Raw()来解析原始字符串到json:

var fruitList = JSON.parse('@Html.Raw(ViewBag.FruitList)');
Run Code Online (Sandbox Code Playgroud)

方式3:

你也可以JsonConvert使用NewtonSoft JSON将它序列化为json:

var fruitList = '@JsonConvert.Serialize(ViewBag.FruitList)';
Run Code Online (Sandbox Code Playgroud)