2009-03-16 4 views
196

:ASP.NET "특별한"태그과 같이 "특별한"ASP.NET 태그의 공식 이름을 무엇

<%# %> 
<%= %> 
<%@ %> 
<%$ %> 

나는이에 대한 개념 또는 잘 알려진 이름을 알아낼 수 없습니다 그래서 더 많은 정보를 찾는 데 문제가 있습니다. 보너스로, 가능한 모든 "특수 태그"와 각자가하는 일 (또는 자원을 가리키며)에 대한 빠른 요약을 제공 할 수 있습니까?

+1

Microsoft는 코드가 포함되어 있으면 [임베디드 코드 블록] (http://msdn.microsoft.com/en-us/library/ms178135(v=vs.100) .aspx)이라고도합니다. –

답변

283

정식 명칭은 "server-side scripting delimiters"또는 "ASP.NET inline expressions"입니다. Visual Studio 2008 구문 강조 표시 설정 대화 상자는 이러한 "HTML 서버 쪽 스크립트"를 호출합니다. 마이크로 소프트 사람들은 블로그에서 "코드 너겟 (code nuggets)"이라고 부릅니다.

  • <%@ %>Directive for ASP.NET Web Pages입니다. 페이지 및 컨트롤을 사용하여 페이지/컨트롤 컴파일러 설정을 구성하는 데 사용됩니다 (<%@ Control Inherits="MyParentControl" %>).
    • <%@ %>Application Directive입니다. global.asax에 대한 응용 프로그램 특정 설정을 지정하는 데 사용됩니다. 다른 태그 세트 만 사용하기 때문에 페이지 지시어와 구분됩니다.
  • <% %>Code Render Block (for inline code)입니다. Embedded Code Blocks의 4 가지 형식 중 하나입니다. 생성 된 클래스의 Render() method (<% x = x + 1; %>)에 대한 서버 측 코드 포함에 사용됩니다. 형식 : 단일/다중 또는 다중 링크 (예 : if/then/else, html로 산재). 기능을 선언하는 데 사용할 수 없습니다.
  • <%= %>Code Render Block (for inline expressions)입니다. <%Response.Write(value)%>
  • <%: %> (비공식적으로 "Html Encoding Code Block")의 약어로 사용되지만 출력은 HTML로 인코딩됩니다.
  • <%# %>Data-binding Expression입니다. Eval, Xpath, Bind 또는 표현식 (예 : 드롭 다운 컨트롤의 선택한 값)을 통해 단방향 (읽기 전용) 또는 양방향 (업데이트 가능) 바인딩에 사용됩니다. 컨트롤의 속성 마크 업을 통해 데이터 바인딩 된 컨트롤 속성에 표현식을 바인딩하거나 Text 속성에 값이있는 DataBoundLiteralControl 인스턴스를 생성하는 별도의 태그로 표현식을 바인딩합니다. 표현식은 컨트롤의 이벤트 처리기 DataBinding에 의해 평가됩니다.
  • <%#: %>HTML Encoded Data-Binding Expression (ASP.NET 4.5의 새로운 기능)입니다. <%# %><%: %>의 기능을 결합합니다.
  • <%$ %>ASP.NET Expression Builder입니다. 서버 태그 속성을 통해 제어 등록 정보에 대한 런타임 표현식 바인딩에 사용됩니다. AppSettings, ConnectionStrings 또는 Resources (또는 코드 숨김 속성을 사용하는 경우는 your own custom extension)과 함께 사용합니다. 이러한 할당은 생성 된 클래스의 OnInit() 메소드에 추가됩니다.
  • <%-- --%>Server-Side Comment입니다.컴파일에서 내용을 제외시키는 데 사용됩니다. 주석 처리 된 컨트롤이 코드 숨김에서 참조되는 경우 오류가 발생합니다. html 주석과 달리 내용은 이 아니며이 출력에 포함됩니다.
  • <!-- #Include ... -->Server-Side Include Directive입니다. 파일의 내용을 페이지, 컨트롤 또는 전역 파일에 삽입하는 데 사용됩니다. 사용자 정의 컨트롤이 과도하게 사용되고 마스터 페이지를 사용할 수없는 곳에 유용합니다.

최종 삽입 코드 블록 형식 Code Declaration Block도 있습니다.

<script runat="server"> 
bool IsTrue() { 
    return false; 
} 
</script> 

ASP.NET 마크 업에서 생성 된 클래스에 추가 멤버 (메서드 등)를 포함하는 데 사용됩니다. 이것들은 단지 "primarily to preserve backward compatibility with older ASP technology"으로 제공되었으며 사용을 권장하지 않습니다.

+1

나는 appsettings/connection 문자열에 대해 databind하는 <%$ ... %>이 있다고 생각합니다. – sisve

+0

나는 그것에 대해 들어 보지 못했다. 근원이 있니? –

+3

ASP.NET 표현식이라고합니다. http://msdn.microsoft.com/en-us/library/d5bd1tad.aspx – elo80ka

7

귀하의 이름 질문에 대한 답변이 없지만 MSDN "ASP.NET Page Syntax" 페이지가 꽤 좋습니다 (또는 그게 최상위 페이지이고 그 아래 페이지가 자세한 정보를 제공합니다).

편집 : 나는 이전에 <%# ... %>이 목록에 포함되지 않았다고 생각했지만, 물론 데이터 바인딩 식에서 생각했습니다. 도.

+0

이 링크는 현재 작동하지 않습니다. 먼저 .NET Framework 버전을 선택해야합니다. – Sam

+1

@Sam : Ah, 고마워요. .NET 4.5가 나왔을 때, 어떤 이유로 든 은퇴했다고 생각합니다. 링크를 수정했습니다. –

+1

Jon Skeet이 웹 개발을하지 않는다고 생각했습니다 ...! – CodeArtist

6

서버 측 구문에 대해 의심 할 때마다 항상 this QuickStart page을 매우 유용하게 사용했습니다. 그것은 8 개의 다른 마크 업 스타일을 상세하게 설명하고 장단점을 설명 할뿐만 아니라 각각의 예제를 제공합니다.

그러나 IIRC는 빠른 시작의 다른 부분에서 자세히 설명 된 페이지 수준 명령은 언급하지 않습니다.

물론 이것은 ASP.NET 2.0과 관련이 있습니다.

+0

이것은 링크 전용 답변입니다. 관련 정보를 인라인하십시오. – zzzzBov

+1

링크가 오래되었습니다 .--( – Roland

6

Microsoft 사람들은 때때로 "너겟"또는 "코드 너겟"이라고 부릅니다.

0

나는 StackOverflow Podcast를 포함하여 "V stings"이라고도 들었습니다.