2012-06-04 6 views
1

나는 우리가 @ sign 사용 MVC Razor View에서 사용하는 같은 array name list 그래서 우리는 같은 View에 액세스 할 수 View에 전달되는 가정사용하여 C# 코드는 자바 스크립트

같은 C# in javascript를 사용하는 것을 시도하고있다 보기

 Length of array : <input type="text" value="@Model.list.Length" /> 

        Or we can iterate list array also like: 

     @for(int i=0; i< Model.list.Length; i++) 
     { 
      console.log(Model.list[i]); 
     } 

하지만 내 문제는 우리가 반복 또는 자바 스크립트 C에서이 배열을 사용하는 방법입니다 송시, 비슷한 :

JS

 for(var i=0; i<@Model.list.Length; i++) 
     { 
     $("body").append("<h1></h1>").html(@Model.list[i]); 
     } 

감사합니다!

+1

일반적으로 Javascript가 실행되는 클라이언트 측에서 C#을 실행할 수 없습니다. – hugomg

+0

이것은 자동차 안에 자전거를 타는 것과 같습니다. 둘 다 차량이며 별도의 도로가 있습니다. C#은 서버에서 실행됩니다. JS가 브라우저 내부에서 실행됩니다. – core1024

+0

이 작업을하려면'C#'명령을 기본 js로 변환하는 전 처리기가 필요합니다. 이것은 평범한 값에 대해 매우 쉽고, 복잡한 객체에 대해서는 훨씬 까다 롭습니다. 프리 프로세서가'C#'-Object를'JS' 객체로 변환 할 수 있다면, 이것을 할 수 있습니다. 그렇지 않으면 배열의 값에 액세스 할 수 없기 때문에 할 수 없습니다. – Christoph

답변

1

난 내 의견에 게시으로서, 이것은 조금 무엇 당신이 할 수있는 것은이 같은 각 줄의 자바 스크립트 코드를 생성하기 위해 C# .NET을 사용하는 것입니다 교활한. 그러나, 당신은 C#으로 자바 스크립트 개체를 만들려고 할 수 있습니다. 에

var array = [ 
    @for(var i = 0; i < Model.list.Length-1; i++){ @Model.list[i] , } 
    @Model.list[length] 
] 

결과를해야합니다 : (이 정확히 어떻게 작동하는지 모르겠어요 ...)이 같은

뭔가 지금

var array = [ 
     val1, 
     val2, 
     val3, 
     valn 
] 

당신은 당신이 JS var에 array이 전체 문서에서 작업 할 수 있습니다.

+1

이러한 값이 문자열 인 경우에는 따옴표가 자동으로 생성되지 않으므로 리터럴 문자열 대신 변수로 처리됩니다. 그렇지 않으면, 좋은 깨끗한 대답. – Toast

0

정확히 그렇게 할 수는 없습니다.

//...javascript code... 

@for(var i = 0; i < Model.list.Length; i++) 
{ 
    $("body").append("<h1></h1>").html('@(Model.list[i])'); 
} 

//...more javascript code... 

이이 같은 출력한다 :

//...javascript code... 

$("body").append("<h1></h1>").html(listitem0); 
$("body").append("<h1></h1>").html(listitem1); 
$("body").append("<h1></h1>").html(listitem2); 
//etc. 

//...more javascript code... 
+0

꽤 고약한 ... – Christoph

+0

아마도 그렇게 할 수 있습니다. – Toast

+0

js- 배열을 만들고 루프를 청소하는 것이 더 깔끔해 보입니다. – Christoph

관련 문제