ASP.NET 컨트롤에서 # 및 =를 언제 사용해야 합니까?
-
02-07-2019 - |
문제
저는 수년 동안 ASP.NET을 사용해 왔지만 #과 =를 사용하는 것이 언제 적절한지 기억이 나지 않습니다.
예를 들어:
<%= Grid.ClientID %>
또는
<%# Eval("FullName")%>
각 단어를 언제 사용해야 하는지 설명해줄 수 있는 사람이 있나요?#은 데이터 바인딩을 지원하는 컨트롤에만 사용됩니까?
해결책
<%= %>는 어디에 배치하든 Response.Write("")를 수행하는 것과 동일합니다.
<%# %>는 데이터 바인딩용이며 데이터 바인딩이 지원되는 경우에만 사용할 수 있습니다. 코드 숨김에서 Page.DataBind()를 호출하면 컨트롤 외부의 페이지 수준에서 사용할 수 있습니다.
다른 팁
몇 가지 다른 '벌침'이 있습니다.
<%@
- 페이지 지시어<%$
- 리소스 액세스<%=
- 페이지에 대한 명시적 출력<%#
- 데이터 바인딩<%--
- 서버 측 주석 블록
ASP.Net 4의 새로운 기능:
<%:
- 페이지에 기록하지만 HTML로 인코딩됩니다.
ASP.Net 4.5의 새로운 기능:
<%#:
- HTML로 인코딩된 데이터 바인딩
여기 Dan Crevier의 훌륭한 블로그 게시물 차이점을 보여주기 위해 그가 작성한 테스트 앱을 살펴봅니다.
본질적으로:
- <%= 표현식은 렌더링 시 평가됩니다.
- <%# 표현식은 DataBind() 시간에 평가되며 DataBind()가 호출되지 않으면 전혀 평가되지 않습니다.
- <%# 식은 서버측 컨트롤의 속성으로 사용될 수 있습니다.<%= 표현식은 사용할 수 없습니다.
제휴하지 않습니다 StackOverflow