2012-01-20 52 views
-1

這裏是我的代碼:Jquery的數組初始化動態

<script type="text/javascript"> 
    $().ready(function() { 

    @if (myList != null) 
    { 
     foreach (var item in myList) 
     { 
      var months =new object[]; 
      @foreach (item1 in item) 
      { 
       months.push(@item1.name); 
      } 
     } 
    } 
</script> 

但它說,幾個月是unaccesible。爲什麼?

+0

看一看這一:HTTP://計算器。 com/questions/3556160/razor-view-engine-and-jquery – rjovic

+0

這完全不是有效的JavaScript,它是如此之多。 – Raynos

+0

@Raynos你爲什麼這麼說? –

回答

2

嘗試var months = [];

+0

@teschfoobar我做了,沒有結果。 –

0

更換var months =new object[];請你幫個忙,並使用替代混合標記和代碼HTML傭工。例如。以下幫手

public static string JsArrayDeclaration(this HtmlHelper helper, string name, object[] array) 
{ 
    var sb = new StringBuilder(); 

    sb.AppendFormat("var {0} = [", name); 
    sb.Append(string.Join(",", array)); 
    sb.Append("];"); 
    return sb.ToString(); 
} 

一旦你導入包含輔助類的命名空間,你可以很容易地在剃刀與此語法使用它:

@Html.JsArrayDeclaration("months", mylist) 
+0

你是說'導入包含幫助者的類的名字空間'?助手在控制器中,並且對它的調用處於適當的視圖中。 –

+0

我只是在你的視圖代碼中使用'@using NameSpace.Of.My.Helper;'。而助手不能進入控制器,因爲它是一個擴展方法,必須在靜態類中聲明。 –