将 ArrayList 转换为 JavaScript 表

Converting an ArrayList to javascript table

本文关键字:JavaScript 转换 ArrayList      更新时间:2023-09-26

我有一个 asp.net MVC4 应用程序 Razor,我想在其中添加自动编译功能,我添加了一个带有 différents 值的示例表availableTags并且它可以工作,但是当我尝试对 JavaScript 表进行ArrayList时:

@{
    ArrayList elements = new ArrayList();
    elements=(ArrayList)Session["elements"];
}
     <script>
            $(function () {
                var champ = "@elements";
                var availableTags = [
                  "ActionScript",
                  "AppleScript",
                  "Asp",
                  "BASIC",
                  "C",
                  "C++",
                  "Clojure",
                  "COBOL",
                  "ColdFusion",
                  "Erlang",
                  "Fortran",
                  "Groovy",
                  "Haskell",
                  "Java",
                  "JavaScript",
                  "Lisp",
                  "Perl",
                  "PHP",
                  "Python",
                  "Ruby",
                  "Scala",
                  "Scheme"
                ];
              $("#tags").autocomplete({
                    source: champ
                });
            });
      </script> 

它失败了!!这个问题的原因是什么?我该如何解决它?

不能只将 JavaScript 变量设置为 C# 变量。 Razor 处理您的 CSHTML 并输出 html。 JavaScript 在客户端上执行。 您生成的 HTML 是什么样的? 我认为您需要将其转换为 JSON,请尝试如下操作:

@{
    ArrayList elements = new ArrayList();
    elements=(ArrayList)Session["elements"];
    var ser = new System.Web.Script.Serialization.JavaScriptSerializer();
    var json = ser.Serialize(elements);
    var html = new HtmlString(json);
}
<script>
    $(function () {
        var champ = @html;