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

How to assign a List<string> to a ViewBag and use in JavaScript?

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

控制器:

List<string> fruits = new List<string>();
list.Add('Apple');
list.Add('Banana');
list.Add('Kiwi');
ViewBag.FruitList = fruits;

查看:

var fruitList = '@ViewBag.FruitList';

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

方式一:

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

var fruitList = @Html.Raw(Json.Encode(ViewBag.FruitList));

方式二:

您可以结合使用 Json.Parse()Html.Raw() 将原始字符串解析为 json:

var fruitList = JSON.parse('@Html.Raw(ViewBag.FruitList)');

方式三:

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

var fruitList = '@JsonConvert.Serialize(ViewBag.FruitList)';