ASP.NET“특별”태그


232

"특별한"ASP.NET 태그의 공식 이름은 다음과 같습니다.

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

이것에 대한 개념 또는 잘 알려진 이름을 알 수 없으므로 더 많은 정보를 검색하는 데 문제가 있습니다. 보너스로 누구나 가능한 모든 "특별 태그"에 대해 간략히 설명하고 각 태그의 기능을 설명해 줄 수 있습니까?


1
Microsoft는 또한 코드가 포함 된 경우 이를 임베디드 코드 블록 이라고합니다.
Robert Harvey

답변:


350

공식 이름은 " 서버 측 스크립팅 구분 기호 "또는 " ASP.NET 인라인 표현식 "입니다. Visual Studio 2008 구문 강조 설정 대화 상자는 이러한 "HTML Server-Side Script"를 호출합니다. Microsoft 직원들은 블로그에서 "코드 너겟"이라고합니다.

  • <%@ %>A는 ASP.NET 웹 페이지에 대한 지침 . 페이지 / 컨트롤 컴파일러 설정 ( <%@ Control Inherits="MyParentControl" %>) 을 구성하기 위해 페이지 및 컨트롤에 사용됩니다 .
    • <%@ %>또한 응용 지침 입니다. global.asax에 대한 응용 프로그램 특정 설정을 지정하는 데 사용됩니다. 다른 태그 세트 만 사용하므로 페이지 지시문과 구별됩니다.
  • <% %>인라인 코드의 경우 코드 렌더 블록 입니다. 4 가지 형태의 임베디드 코드 블록 중 하나 . 생성 된 클래스 의 Render()메소드 ( <% x = x + 1; %>)에 서버 측 코드를 포함시키는 데 사용됩니다 . 형식 : 단일 / 여러 줄 또는 다중 연결 (예 : if/then/elsehtml로 산재)되지만 함수를 선언하는 데 사용할 수 없습니다.
  • <%= %>인라인 표현식코드 렌더 블록 입니다. 속 기용으로 사용<%Response.Write(value)%>
  • <%: %>(비공식적으로 " Html 인코딩 코드 블록 ")은 이전과 동일하지만 출력은 HTML로 인코딩됩니다.
  • <%# %> 이다 데이터 바인딩 식 . (판독 전용) 단방향 또는 결합을 통해 양방향 (갱신)을 위해 사용 Eval, Xpath, Bind, 또는 식 (a 드롭 다운 제어의 예 설정 값). 컨트롤의 속성 태그를 통해 또는 속성 DataBoundLiteralControl에 값이 있는 인스턴스 를 생성하는 별도의 태그로 식을 데이터 바인딩 된 컨트롤 속성에 바인딩 Text합니다. DataBinding컨트롤 의 이벤트 처리기 가 식을 평가합니다 .
  • <%#: %>입니다 HTML 인코딩 된 데이터 바인딩 식 (ASP.NET 4.5에서 신규). 그것은의 기능을 결합 <%# %>하고 <%: %>.
  • <%$ %>입니다 ASP.NET 식 빌더 . 서버 태그 속성을 통한 제어 특성의 런타임 표현식 바인딩에 사용됩니다. 와 함께 사용AppSettings , ConnectionStrings또는 Resources(또는 사용자 정의 확장 , 예를 들어 속성 코드 숨김 사용에). 이러한 할당은 OnInit()생성 된 클래스 의 메소드에 추가됩니다 .
  • <%-- --%> 이다 서버 측의 코멘트 . 컴파일에서 내용을 제외하는 데 사용되며 주석 처리 된 컨트롤이 코드 숨김에서 참조되면 오류가 발생합니다. html 주석과 달리 내용은 출력에 포함 되지 않습니다 .
  • <!-- #Include ... -->A는 서버 측 지침을 포함합니다 . 파일의 내용을 페이지, 컨트롤 또는 전역 파일에 삽입하는 데 사용됩니다. 사용자 정의 컨트롤이 과도하고 마스터 페이지를 사용할 수없는 경우에 유용합니다.

도있다 코드 선언 블록최종 임베디드 코드 블록 양식 인 .

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

이것은 ASP.NET 마크 업에서 생성 된 클래스에 추가 멤버 (메소드 등)를 포함하는 데 사용됩니다. 이것들은 "이전의 ASP 기술과의 역 호환성을 유지하기 위해 주로" 제공되었으므로 사용하지 않는 것이 좋습니다.


1
appsettings / connection strings에 데이터를 바인딩하는 <% $ ... %>이 있다고 생각합니다.
sisve

나는 그것을 듣지 못했습니다. 소스가 있습니까?
Sedat Kapanoglu

3
이를 ASP.NET Expressions라고합니다. msdn.microsoft.com/en-us/library/d5bd1tad.aspx
elo80ka

7

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

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


이 링크는 현재 작동하지 않습니다. .NET 프레임 워크 버전을 선택해야합니다.
Sam

1
@ Sam : 아, 고마워-.NET 4.5가 나왔을 때 어떤 이유로 은퇴했다고 생각합니다. 링크를 편집했습니다.
Jon Skeet

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

6

서버 측 구문에 대해 의문이있을 때마다이 빠른 시작 페이지 가 항상 유용하다는 것을 알았습니다. 여기에는 8 가지 마크 업 스타일이 자세하게 설명되어 있으며 장단점을 설명 할뿐만 아니라 각각의 스타일 예가 나와 있습니다.

그러나 페이지 레벨 지시문은 언급하지 않지만, IIRC가 빠른 시작의 다른 곳에 자세히 설명되어 있습니다.

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


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

1
link is stale :-(
Roland


6

Microsoft 직원들은이를 "너겟"또는 "코드 너겟"이라고도합니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.