【问题标题】:How to assign a List<string> to a ViewBag and use in JavaScript?如何将 List<string> 分配给 ViewBag 并在 JavaScript 中使用?
【发布时间】:2015-10-12 20:54:51
【问题描述】:

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

控制器:

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

查看:

var fruitList = '@ViewBag.FruitList';

当我运行程序时,fruitListSystem.Collections.Generic.List 1[System.String] 的形式返回

【问题讨论】:

  • 可能重复。你看过这个stackoverflow.com/questions/6192950/…
  • 从控制器返回 json,然后在客户端返回 $.getJSON()
  • 为什么 List 需要这个但说带有字符串的 ViewBag 不需要?

标签: javascript c# asp.net-mvc asp.net-mvc-3


【解决方案1】:

方式一:

您可以使用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)');

方式3:

您也可以使用JsonConvert 类使用NewtonSoft JSON 将其序列化为json:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-21
    • 2012-09-05
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    • 2016-04-18
    • 2017-11-08
    • 1970-01-01
    相关资源
    最近更新 更多