2012-01-20 4 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 것을 말한다. 왜? var months = [];

+0

걸릴 모양을. com/questions/3556160/razor-view-engine-and-jquery – rjovic

+0

JavaScript는 유효하지 않습니다. – Raynos

+0

@Raynos 왜 그런 말을하니? –

답변

2

봅니다 자신에게 호의를 수행하고 대신 마크 업과 코드를 혼합의 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(); 
} 

, 당신은 쉽게 구문 면도기에서 사용할 수 있습니다 : HTTP : // 유래 이것

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

@teschfoobar 결과가 없습니다. –

0

var months =new object[];를 교체

+0

'도우미가 들어있는 클래스의 네임 스페이스 가져 오기'를 어떻게 의미합니까? 도우미가 컨트롤러에 있고 호출자가 적절한보기에 있습니다. –

+0

나는보기 코드에서'@using NameSpace.Of.My.Helper;'를 의미했습니다. 그리고 도우미는 컨트롤러에서 사용할 수 없습니다. 확장 메서드이기 때문에 정적 클래스에서 선언해야합니다. –