2014-10-07 4 views
4

현재 ASP.Net MVC 응용 프로그램에서 작업 중입니다. 제 데이터베이스에서 3 개의 사전을 만들어 View Model에 저장했습니다. 채우기 후Razor 구문으로 JavaScript 함수 호출

컨트롤러의 일부 로직 사전, 나는이 사전을 조작 한 후 @Model

를 통해 내보기에이 사전에 접근하고있어했다, 나는 몇 가지 논리를 적용 할 JS 함수에 데이터를 보낼 필요 JS 라이브러리는 DHtmlxScheduler

@:을 사용하여 Razor 구문에 대해 읽었으며 현재이 방법을 사용하여 두 개의 문자열 배열을 보내고 있습니다. 시간 슬롯 및 엔지니어에 대한

var weekArray; 
var engArray; 

@foreach(var week in Model.WeeklySchedule) 
{ 
    var key = week.Key; 
    var values = week.Value.ToArray(); 
    var eng = Model.EngineerSchedule.Where(k => k.Key == key).Select(v => v.Value).ToArray(); 
    string test = "hello"; 

    @: gatherTimes('@values', '@eng'); 
} 

function gatherTimes(values, engs) 
{ 
    for(var i = 0; i < values.length; i++) 
    { 
     alert(values[i]); 
    } 

    //alert(values); 
    //alert(engs); 

    //weekArray[weekArray.length] = values; 
    //engArray[engArray.length] = engineers; 
} 
나는 결국 배열을 통해 반복 계획

, 그들은 개최 : 본 JS 함수에서이 배열에 액세스하려고 할 때, 그들은 단지 여기

System.String[] 코드입니다 개최 표시 ID. 내가 제공 할 수있는 정보가 더 있다면, 그렇게하기 위해 최선을 다할 것입니다.

+2

(http://msdn.microsoft.com/en-us :

@{ // C# collection var collection= new List<string> {"A", "B", "C"}; } <script type="text/javascript"> // encode C# collection to JSON, set to javascript variable var arr = @Html.Raw(Json.Encode(collection)) for(var i = 0; i < arr.length; i++) { console.log(arr[i]); // Output is A B C } </script> 

귀하의 경우는과 같이 될 것이다 예를 들면 다음과 같습니다 /library/system.web.helpers.json.encode(v=vs.111).aspx) – Grundy

+0

복제본 [클라이언트 ASP.NET MVC에서 Json Array에 변환] (http://stackoverflow.com/questions)/11959770/convert-liststring-to-json-array-on-client-asp-net-mvc) – Strake

답변

3

JSON.Encode를 사용하여 목록을 JSON으로 인코딩해야합니다. 당신이 [`Json.Encode`] 필요

@: gatherTimes('@Html.Raw(Json.Encode(values))', '@Html.Raw(Json.Encode(eng))');  
+0

대단히 감사합니다 @ 스트레이크! –