문제

저는 수년 동안 ASP.NET을 사용해 왔지만 #과 =를 사용하는 것이 언제 적절한지 기억이 나지 않습니다.

예를 들어:

<%= Grid.ClientID %>

또는

<%# Eval("FullName")%>

각 단어를 언제 사용해야 하는지 설명해줄 수 있는 사람이 있나요?#은 데이터 바인딩을 지원하는 컨트롤에만 사용됩니까?

도움이 되었습니까?

해결책

<%= %>는 어디에 배치하든 Response.Write("")를 수행하는 것과 동일합니다.

<%# %>는 데이터 바인딩용이며 데이터 바인딩이 지원되는 경우에만 사용할 수 있습니다. 코드 숨김에서 Page.DataBind()를 호출하면 컨트롤 외부의 페이지 수준에서 사용할 수 있습니다.

데이터 바인딩 표현식 개요

다른 팁

몇 가지 다른 '벌침'이 있습니다.

  • <%@ - 페이지 지시어
  • <%$ - 리소스 액세스
  • <%= - 페이지에 대한 명시적 출력
  • <%# - 데이터 바인딩
  • <%-- - 서버 측 주석 블록

ASP.Net 4의 새로운 기능:

  • <%: - 페이지에 기록하지만 HTML로 인코딩됩니다.

ASP.Net 4.5의 새로운 기능:

  • <%#: - HTML로 인코딩된 데이터 바인딩

여기 Dan Crevier의 훌륭한 블로그 게시물 차이점을 보여주기 위해 그가 작성한 테스트 앱을 살펴봅니다.

본질적으로:

  • <%= 표현식은 렌더링 시 평가됩니다.
  • <%# 표현식은 DataBind() 시간에 평가되며 DataBind()가 호출되지 않으면 전혀 평가되지 않습니다.
  • <%# 식은 서버측 컨트롤의 속성으로 사용될 수 있습니다.<%= 표현식은 사용할 수 없습니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top