2011-03-29 2 views
1

탈출 : <%= Html.Encode(Model.synopsis) %> 내용 개요는 HTML 문자가 너무 탈출ASP.NET MVC HTML 나는 이것이 사용하여 내보기에 일부 내용을 표시

예를 들어 다음과 같이 데이터베이스에 저장된 일부 콘텐츠가 보일 것 같은 :

&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor 
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud 
exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure 
dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. 
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit 
anim id est laborum.&lt;/p&gt; 

코드를 HTML로 표시하려면 어떻게 변경해야합니까? 따라서 이스케이프 된 HTML은 프런트 엔드에서 HTML이됩니다.

감사합니다.

+0

http://msdn.microsoft.com/en-us/library/hwzhtkke.aspx, 당신은 그것을 보여주는 전에 디코딩 할 필요가 - 여기

은 MSDN의 실제 함수에 대한 참조입니다. 그러나 데이터베이스에 HTML로 인코딩 된 HTML이 없으면 훨씬 쉬울 것입니다. :) ("HTML 인코딩 됨"은 "HTML에 포함되도록 인코딩 됨"을 의미합니다. 데이터베이스에 저장할 때이를 수행 할 필요가 없습니다.) – bzlm

답변

3

에 해당 태그 :

또한 당신이 당신의 출력을 인코딩 할 시간을 위해, 당신은 단지 <퍼센트를 사용할 수 있습니까? 당신이 HTML 데이터베이스에 HTML 인코딩했기 때문에

+0

디코드가 작동하지 않습니다. MVC 1을 사용하고 있습니다. – Cameron

+1

그런 경우 Server.HTMLDecode을 시도해보십시오. 추신 또한 오타가있을 때 답변의 메서드 이름을 편집합니다. – Naraen

+0

'<% = Server.HtmlDecode (Model.synopsis) %>'작품 :) – Cameron

7

Html.Encode를 사용하지 마십시오. 그냥 해.

<%= Model.synopsis %> 

Html.Encode는 특수 html 문자를 인코딩하고 이스케이프 처리합니다. 조심하고 브라우저에서 실행되는 마크 업을 사용자가 입력 할 수 있도록하여 XSS에 대해 자신을 개방하지 않도록 할 수 있습니다.

<%: Model.synopsis %> 

<%= Html.HtmlDecode(Model.synopsis) %>이 경우에 트릭을 할합니까

<%= Html.Encode(Model.synopsis) %> 
+0

그 대신 HTML을 실제 HTML로 변경하는 대신 코드가 표시됩니다. – Cameron

+0

@cameron, 나는 혼란 스럽습니다. 달성하고자하는 것은 무엇입니까? – Vadim

+0

OP에서 위의 내용은 내 데이터베이스에 저장되어있는 내용입니다. 보기에 표시 할 때 '<p> 일부 텍스트 ... </p >'과 같이 표시되지만 인코딩을 제거하면 '

텍스트 ...

'처럼 표시되므로 이스케이프 처리 된 HTML이 변환되지 않습니다. HTML을 볼 때. – Cameron

관련 문제