2011-01-26 9 views
25

나는 문제는 결과 HTML은과 같이 인코딩지고 있는지 왜 사용자 정의 HTML 도우미 결과가 HTML로 인코딩됩니까?

public static string RegisterJS(this HtmlHelper helper, ScriptLibrary scriptLib) 
{ 
    return "<script type=\"text/javascript\"></script>\r\n"; 
} 

(나는 결과를 제대로 보여주기 때문에 얻을 공백을 추가했습니다 3

의 asp.net MVC에서 다음 사용자 정의 HTML 도우미를 가지고 : 분명히

&lt;script type=&quot;text/javascript&quot;&gt;&lt;/script&gt; 

이 나에게 큰 도움이되지이다 .. 내가 읽은 것도이에 대해 아무것도 ..는 말한다 내 실제 결과를 다시 얻을 수있는 방법 당신은 전화하는거야

답변

37

을에 어떤 생각? 면도기 @ 블록의 도우미 또는 ASPX <%: %> 블록.
이러한 구문은 자동으로 출력을 이스케이프 처리합니다.

return new HtmlString("<script ..."); 
+2

감사 :

당신은 탈출 할 수없는 것 HtmlString를 반환하는 도우미를 변경해야합니다. 이게 3의 변화인가요? 심지어 MS 예제에서 방금 반환 된 문자열을 찾았습니다. –

+0

@Shane : No; 뷰 엔진의 기능입니다. – SLaks

+1

MVC1에서 예제를 볼 수 있습니다. MVC 2에서는 모든 도우미가 HtmlString을 반환하도록 변경되어 .NET 4의 ASPX 자동 인코딩 기능이 작동 할 수 있습니다 (<%= %> 대신 '<%: %>'사용). 새로운 Razor 뷰 엔진은 모든 것을 자동으로 인코딩합니다. – marcind

관련 문제