인코딩이 없는 ASP.NET MVC 레이저 렌더
레이저는 기본적으로 문자열을 인코딩합니다.인코딩 없이 렌더링하기 위한 특별한 구문이 있습니까?
ASP.NET MVC 3부터는 다음을 사용할 수 있습니다.
@Html.Raw(myString)
@(new HtmlString(myString))
이미 언급된 @Html 뿐만 아니라.원시(문자열) 접근 방식입니다. MvcHtmlString을 출력하면 인코딩되지 않습니다.이 기능은 Html 도우미에 사용자 고유의 확장자를 추가하거나 html을 포함할 수 있는 뷰 모델의 값을 반환할 때 유용합니다.
예를 들어, 뷰 모델이 다음과 같다면,
public class SampleViewModel
{
public string SampleString { get; set; }
public MvcHtmlString SampleHtmlString { get; set; }
}
Core 1.0+(및 MVC 5+)의 경우 HtmlString 사용
public class SampleViewModel
{
public string SampleString { get; set; }
public HtmlString SampleHtmlString { get; set; }
}
그리고나서
<!-- this will be encoded -->
<div>@Model.SampleString</div>
<!-- this will not be encoded -->
<div>@Html.Raw(Model.SampleString)</div>
<!-- this will not be encoded either -->
<div>@Model.SampleHtmlString</div>
사용하다@Html.Raw()
인코딩 및 보안 문제가 더 많이 발생할 수 있으므로 주의해야 합니다.제가 직접 해야 했기 때문에 사용 사례를 이해하지만, 조심스럽게...모든 텍스트를 허용하지 마십시오.예를 들어 특정 문자 시퀀스만 보존/변환하고 나머지는 항상 인코딩합니다.
@Html.Raw(Html.Encode(myString).Replace("\n", "<br/>"))
그러면 잠재적인 보안 취약점을 만들지 않았으며 모든 브라우저에서 특수/외국어 문자가 올바르게 표시됩니다.
ActionLink의 경우 일반적으로 HttpUtility를 사용합니다.링크 텍스트를 인코딩합니다.그런 경우에는 사용할 수 있습니다.HttpUtility.HtmlDecode(myString)
HtmlActionLink를 사용하여 전달하고자 하는 문자열을 디코딩할 때 작동했습니다.예:
@Html.ActionLink(HttpUtility.HtmlDecode("myString","ActionName",..)
WriteLiteral 메서드를 사용할 수도 있습니다.
언급URL : https://stackoverflow.com/questions/4071602/asp-net-mvc-razor-render-without-encoding
'programing' 카테고리의 다른 글
익스프레스 프레임워크를 사용하여 노드 J에서 쿠키를 설정하려면 어떻게 해야 합니까? (0) | 2023.05.25 |
---|---|
EC2: sudo 노드 명령을 찾을 수 없지만 sudo가 없는 노드는 정상입니다. (0) | 2023.05.25 |
Azure AD B2C - 역할 관리 (0) | 2023.05.25 |
MongoDBC# 드라이버 2.0 - 문서 업데이트 (0) | 2023.05.25 |
gitbash로 폴더를 변경하는 방법은 무엇입니까? (0) | 2023.05.25 |