2013-03-12 1 views
0

내 Asp.Net 웹 폼 페이지를 로컬에서 테스트하는 동안 모든 내 jscript 소셜 위젯/분석 초기화가 디버그 출력을 어수선하게 만들었습니다. 그래서 난 내 HTML 마크 업이 시도 :자바 스크립트에서 asp.net 인라인 태그 사용 조건부

<script> 
if (<%= !Request.IsLocal ? "true" : "false" %>) { 

이 실제로 올바른 JScript 코드를 방출 (") (true의 경우")없는 런타임 오류하지만 비주얼 스튜디오와 것은 그것을 좋아하지 않는다. 닫는 중 구문 오류가 발생합니다. '). 확실히 컴파일 오류를보고 싶지는 않습니다. 가짜인데도 컴파일 할 때마다.

내가

작품과 같은 코드를 방출
if ("<%= Request.IsLocal %>" === "False") { 

같은 문자열을 비교하도록 변경 '하는 경우는 ("진정한는"=== "거짓")',하지만 ... 그건 그냥 내 신경 대발 그리고보기 흉하게. 이건 그냥 비주얼 스튜디오 이상한가요, 아니면 거기에 jscript 조건부 asp.net 서버 부울 값을 사용하는 더 좋은 방법은 무엇입니까? 자신의 위치 등

당신이 진정으로이를 방지하려면, 당신은 뒤에 코드에서 자바 스크립트를 작성해야에 따라

답변

2

당신이 뭔가를 할 수 없습니다.

+0

네, 내 질문에 따라, 이것이 내가 사용하고있는 현재의 해결책이다. 제 질문은 더 좋은 방법이 있었는지 아니면 이것이 단지 몇 가지 대단한 인텔리 센스의 이상인지 아닌지였습니다. –

+0

VS intellisense는 JavaScript와 ASP.NET 코드를 혼합하기 때문에 혼란 스럽습니다. ASP.NET 코드를 따옴표 안에 넣으면 intellisense는 JavaScript 문자열로 간주하지만 컴파일러는 꺽쇠 괄호 <%= %> 내의 값을 바꿉니다. 따라서 VS에 "불만 사항"이 없습니다. 내 제안은 자바 스크립트 코드 위에이 "추함"을 격리하는 것이 었습니다. 다른 방법은 코드에서 JS 코드를 삽입하는 것이지만 훨씬 덜 간단하다고 생각합니다. – Floremin

+0

그래,이 상황에서 가장 이해하기 쉬운 것 같다. –

0

자바 스크립트/HTML/CSS + 서버 태그의 조합은 squigly 표시됩니다 라인.

<asp:Literal id="script" runat="server"> 

코드 숨김.

<script> 
    var isLocal = "<%= Request.IsLocal %>" == "True"; 
    ... 

    if(isLocal) { 
    // do local stuff 
    } 
</script> 

VS 불평하지 않습니다

if (Request.IsLocal) { 
    script.Text = "<script>function(){}</script>"; 
} 
+0

이것은 매우 흥미롭고 아주 작은 스크립트에서는 잘 작동하지만 VS가 jscript 코드를 코드가 아닌 문자열로 간주하기 때문에 intellisense와 일반적인 편집기 장점을 모두 잃게됩니다. 가치있는 트레이드 오프가되었지만 흥미로운 옵션에 대해 감사드립니다. –

관련 문제