에 대한 게시물의 HtmlEncode 나는 Html.TextAreaFor 컨트롤이있는 ASP.Net MVC 3 페이지가 있습니다. 아래 코드를 참조하십시오. 내가 좋아하는 꺾쇠 괄호 텍스트로 HTTP 게시 작업에 페이지를 제출하려고하면 (ASP.Net MVC 3 Html.TextAreaFor
잠재적 위험으로 Request.Form 값이 클라이언트에서 발견 된 RequestText을 :
<test>
, 나는 말 노란색 오류 화면을 얻을 = "").
내가 닷넷 4의 새로운 <%: %>
구문을 말한다 an article by Scott Guthrie을 발견하기 때문에 자동으로,이 것 얻고 이유를 이해하지 못한다는 요소를 대해 HTMLEncode. Html.TextAreaFor 컨트롤에 대해 < % : %> 구문을 사용하고 있기 때문에 자동으로이를 처리하고 꺾쇠 괄호를 적절한 "& lt"으로 변환한다고 생각했습니다. 및 "& gt"문자열이 있습니다.
<% using (Html.BeginForm())
{ %>
<%: Html.ValidationSummary() %>
<h2>Enter a description of the support needed</h2>
<%: Html.TextAreaFor(m => m.RequestText, 4, 90, null) %>
<input type="submit" value="Submit" />
<% } %>
체이스 - 나는 [AllowHtml]을 사용하지 않을 것이고, 컨트롤러 동작으로 다시 게시 할 때 .net 프레임 워크 html로 텍스트를 인코딩 할 수있는 방법이없는가요? –
컨트롤러에서 수동으로 인코딩합니다. 인코딩되지 않은 데이터를 게시하지 않으려는 것은 데이터 계층입니다. 컨트롤러 레벨에서 이것을 처리해야합니다. –
기본적으로 HTML은 데이터를 인코딩 할 수 없습니다. Javascript를 사용할 수는 있지만 단순히 JS를 사용 중지 할 수 있기 때문에 좋지 않습니다. 이 작업을 수행하는 유일한 확실한 방법은 클라이언트 수준이 아니라 서버 수준입니다. –