2012-02-15 1 views

답변

0

질문에 약간 혼란 스럽지만 ASP 컨트롤이 자동 HTML 인코딩을 사용하여 텍스트를 표시하는지 알고 싶다면 asp:textboxasp:textarea이 모두 해당됩니다.

그러나 인코딩을 먼저 수행하는 경우 Response.Write으로이를 수행 할 수도 있습니다.

Response.Write(Server.HTMLEncode("The <select /> control!")); 

자세한 내용은 http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.htmlencode.aspx을 참조하십시오. .NET 4

또는, 당신은 인코딩 된 출력을 위해 기존의 고전적인 ASP 덩어리를 사용할 수 있습니다

<% string output_text = "<select />"; %> 
<%= output_text %> 

당신이 원하는 것을이 더 있습니까?

+0

아니요! 'hello my "닉네임이" "인 DB의 텍스트가 있다고 가정하고 인코딩 된 것을 인쇄하고 싶습니다 ... 일반 텍스트를 관리하는 서버 측 컨트롤이 있습니까? 예를 들어''는 드롭 다운리스트를 관리하는 서버 측 컨트롤입니다 :) – markzzz

+0

아, 미안합니다 - 그것은 리터럴 컨트롤입니다. 원하는대로 인코딩을 적용 할 수도 있고 적용하지 않을 수도 있습니다. 예 : http://www.w3schools.com/aspnet/control_literal.asp – CompanyDroneFromSector7G

1

Label control은 사용자가 입력 한 내용을 인코딩합니다. 따라서 Text 속성을 "hello my"닉네임이 "is"로 설정하면 hello my &quot;nickname&quot; is &lt;markzzz&gt;과 같은 HTML이 출력됩니다.

ASP.NET이 Text 속성을 인코딩하지 않게하려면 Literal control을 사용하십시오. 입력 한 것처럼 텍스트가 출력됩니다. 이 방법으로 Text 속성을 <strong>something</strong>으로 설정할 수 있습니다. 그리고 HTML에서 정확하게 얻을 수 있습니다. 귀하의 사용자는 무엇인가 (굵게 표시)을 볼 수 있습니다.

그래서 저는 Label 컨트롤이 필요하다고 생각합니다.

업데이트 :

(시험 70-515에 대한 교육 키트) 책 '의 Microsoft .NET Framework 4 웹 응용 프로그램 개발은'나를 혼란 얻었다 것입니다. 그것은 :

페이지에 원시 HTML을 추가하려면 ASP.NET에서 추가 처리를 제공하지 않고도 Literal 컨트롤을 사용하십시오. 첫눈에 Lititer 컨트롤은 Label 컨트롤과 매우 유사합니다. 그러나 Literal은 Label 처럼 WebControl을 상속하지 않습니다. 또한 Literal 컨트롤은 HTML 요소 을 웹 페이지에 추가하지 않지만 레이블은 태그로 렌더링됩니다. 이 은 Literal 컨트롤에 스타일 속성이 없음을 의미하므로 은 해당 콘텐츠에 스타일을 적용 할 수 없습니다.

리터럴 컨트롤은 페이지의 텍스트 출력에 동적으로 (서버에서) 텍스트를 추가해야하지만 레이블을 사용하지 않으려는 경우에 유용합니다. 텍스트가 정적 인 경우 페이지의 마크 업에 추가하면됩니다 ( 에 Label 또는 Literal 컨트롤이 필요하지 않음).Literal 컨트롤에는 Mode 속성이 포함되어 있습니다.이 속성은 Text 속성의 내용에 대한 특정 처리를 지정하는 데 사용됩니다. 사용할 수있는 모드와 해당 설명은 표 4-2에 나와 있습니다.

그래서 두 가지 모두 사용할 수 있다고 생각합니다. Label은 입력 한 텍스트 (즉, span 태그)에 html을 추가합니다. 리터럴은 그렇지 않지만, bukko가 말했듯이, Mode 속성을 올바르게 설정해야합니다.

+0

레이블 컨트롤은 아무 것도 인코딩하지 않습니다. 리터럴 컨트롤은 mode 특성의 값에 따라 텍스트를 인코딩합니다. – CompanyDroneFromSector7G

+0

죄송합니다. 사과, 부꼬 말이 맞아. – Peter

+0

흠, MSDN 설명서에서 말하는 것보다 다른 결과가 나타납니다. 내 레이블은 또한 코드 안에있는 코드를 인코딩합니다. 어쨌든, 당신은 레이블이나 문자가 필요합니다. 그냥 시도해보고 알려주십시오. – Peter