2

JavaScriptSerializer을 사용하여 클라이언트 측 객체를 만들 때 Visual Studio 2010에서 JavaScript Intellisense를 얻는 올바른 방법은 무엇입니까?JavaScriptSerializer에서 생성 된 JavaScript 용 Visual Studio Intellisense

예를 들어, 몇 가지 속성이있는 Record이라는 클래스가 있습니다. 나는 Records의 콜렉션을 생성하고 나서 JavaScriptSerializer을 사용하여 그것들을 직렬화합니다.

public string JsonRecords 
{ 
    get 
    { 
     var js = new System.Web.Script.Serialization.JavaScriptSerializer(); 
     return js.Serialize(Records); 
    } 
} 

ASPX 페이지 뒤에

코드

<script> 
    // mocks the Record object 
    var records = [{ "Date": "", "Latitude": 0, "Longitude": 0 }]; 

    // sets the Record object 
    records = <%= JsonRecords %>; 
</script> 

나는 경우 JS가 Records 클래스를 조롱하는 변수를 기록 사전을 작성, 나는 비주얼 스튜디오를 갖춘 인텔리 지원을받을.

이 방법은 효과가 있지만 더러울 것 같습니다. 더 적절한 방법이 있습니까? 아니면 일반적인 관행입니까?

답변

2

JavaScriptSerializer로 개체를 만들 때 Studio 2010의 Visual IntelliSense를 가져 오는 올바른 방법은 무엇입니까?

이러한 시나리오를 활성화 할 VSNext 또는 일부 패치를 기다리십시오. 현재 자바 스크립트를 서버 측 코드와 혼합 할 때의 Intellisense 시나리오는 지원되지 않습니다.

+2

이 문제에 대한 최신 정보가 있습니까? – Johan

0

자바 스크립트 intellisense는 스크립트 자체를 구문 분석하여 생성되므로 스크립트 (또는 참조 된 스크립트)에서 속성을 인라인 정의하지 않은 경우 인텔리 센스가 표시되지 않습니다.

intellisense와 함께 사용하려고했지만 궁극적으로 동적 구조를 제공 할 구조가있는 경우 다른 .js 파일에 스텁 (stub) 한 다음 파일에 참조 태그를 포함시킬 수 있습니다.

/// <reference path="../xxx.js" /> 

이 코드는 클라이언트에서 주석으로 처리되지만 코드에서 작업 할 때 Visual Studio에서이를 처리합니다. Minifier/uglifier는 제작에 앞서이 주석을 제거하므로 성능에 영향을 미치지 않습니다.