2011-11-20 5 views
15

그래서 .NET에서 우리는 .NET "코드 너겟 블록"?

<%= 

<%: (new to .NET 4 - syntactic sugar for HTML encoding) 

<%# 

<%@ 

정확이 무엇입니까 ...이?

그리고 더 있으십니까? 이것들에 대한 철저한 목록과 그들이 어디에 있는지요? 심지어 무엇을 검색 할지를 아는 것은 어렵습니다. 나는 심지어 < % :인지를 발견했을 때 "코드 너겟 블록"이라는 용어를 듣지도 않았습니다.

답변

9

<%@은 지시어입니다. 완전한 목록 및 설명서는 MSDN을 참조하십시오.

사용하는 경우, 지시자는 .ASPX 어디서나 찾을 수 있습니다 또는 표준 연습 파일의 시작 부분을 포함하는 것입니다하지만, 파일의 .ascx. 각 지정 문에는 해당 지정 문에만 해당하는 하나 이상의 속성 (값이있는 쌍이 포함될 수 있음)이 포함될 수 있습니다.

<%은 스크립트 블록입니다. 여기 MSDN

내장 된 코드 블록에서 좋은 설명은 페이지의 렌더링 단계에서 실행 서버 코드입니다. 블록의 코드는 프로그래밍 문을 실행하고 현재 페이지 클래스의 함수를 호출 할 수 있습니다.

블록은 바운드 컨트롤에서 정상적으로 사용됩니다. 자세한 내용은이 짧은 article을 참조하십시오.

2

모든 WebForm 태그에 적절한 공동 이름이 있는지 확실하지 않지만 모두 ASP.NET Page Syntax에 있어야합니다. 목록에없는 사용자들은 다른있다

, ASP.NET Expressions은 :

<%$ expressionPrefix: expressionValue %> 
8

그들은 코드의 덩어리라고합니다. 이러한 기호 (< %%>) 내에서 문을 처리하는 방법에 대한 ASP.NET 프레임 워크 지침을 제공합니다. 내가 그 이름을 알 때까지, 지역 사회에서 그것에 대해 물어 보는 것은 조금 더 어려웠다. '철저한'목록을 모르겠지만, 당신이 지정한 것보다 더 많은 것이 있습니다. 다음은 다른 코드 너겟과 그 용도 및 샘플 예제 목록입니다.

기호 - 이름 - 설명 - 예 (형식)


<% - 표준 코드 덩어리는 - 다음 문은 C#을 문을 나타냅니다. C# 구문 규칙을 따라야합니다. 예.

<% string[] cities = { ""London"", ""New York"", ""Paris"" }; 
string myCity = cities[new Random().Next(cities.Length)]; 
Response.Write(myCity);%> 

<%= --Content 코드 덩어리 - 표준 CN 마찬가지로, 차분 반환 된 결과 인 직접 Response.Write를 사용하지 않고도 브라우저에 응답하여 삽입된다. 예.

<%=textBox.Text%> 

(권장하지 않음. html injection 공격의 위험이 있습니다.텍스트 상자의 입력이 "< button type = submit > Submit</button >"과 같은 경우 페이지에 단추가 추가됩니다. 물론이 검증 될 수 있지만 요점은 분명하다 바랍니다.) <퍼센트 =에 --Similar


<%: --Encoded 코드 덩어리, 그러나 응답은 HTML 인코딩되는 것입니다. 예. Name is <%:textBox.Text%> (입력 텍스트 상자에 무엇이든, 그것은 입력이 "< button type = submit > Submit</button >"같은 인 경우. 출력은 "이름이 <button type = submit> Submit</button>는"이 될 것입니다 표시됩니다.


<%# --data 결합 코드 너겟 (nugget) - 현재 데이터 객체를 참조하는 데 사용되는 데이터 바인딩 코드 너겟을 선언합니다. 리피터 등의 데이터 바인딩 컨트롤에서만 사용 가능합니다.

<%#: - 인코딩 된 데이터 바인딩 코드는 데이터 바인딩 된 값이 인코딩됩니다. 예 :

<asp:Repeater ItemType = ""System.String"" SelectMethod = ""GetCities"" runat = ""server"> 
<ItemTemplate> 
<li > <%# Item % > </li> 
</ItemTemplate> 
</asp:Repeater> 

은 (인코딩 된 경우 (<%#:가 사용됩니다, 그것은 권장 해석하지 않고 리터럴을 표시합니다).) "


<%$ --property 코드 덩어리를 - 같은 그 정의, 구성 값을 참조하는 데 사용 Web.config에서.

<asp:Literal Text = " < %$ AppSettings: cityMessage % > " runat = "server" /> 

는 (config 파일에서 cityMessage 키의 값을 검색합니다.)


<%@ --page 지침 -이 따라 웹 양식 (또는 제어 또는 마스터 페이지를 구성하는 데 사용됩니다 지시어의 종류에. 예.

<%@ Page.. <%@ Master 

모든 위 정보 및 전자 언급 샘플은 Adam Freeman의 Pro ASP .NET 4.5 책, 12 장. 우수 도서에서 제공됩니다.