2013-10-29 40 views
0

我有一個asp.net mvc4應用程序剃鬚刀,其中我想添加自動壓縮功能,我添加了示例表availableTags與différents值,它的工作原理,但是當我嘗試一個ArrayList到一個javascript表格:轉換ArrayList到javascript表

@{ 
    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> 

它失敗了! 這個問題的原因是什麼?我該如何解決它?

回答

2

您不能只將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;