인코딩하지 않고 ASP.NET MVC 면도기 렌더링
Razor는 기본적으로 문자열을 인코딩합니다. 인코딩하지 않고 렌더링하기위한 특별한 구문이 있습니까?
ASP.NET MVC 3부터 다음을 사용할 수 있습니다.
@Html.Raw(myString)
@(new HtmlString(myString))
이미 언급 된 @ Html.Raw (string) 접근 방식뿐만 아니라 MvcHtmlString을 출력하면 인코딩되지 않습니다. 이는 HtmlHelper에 고유 한 확장을 추가하거나 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.Encode를 사용합니다. 이 경우 HttpUtility.HtmlDecode(myString)
HtmlActionLink를 사용하여 전달하려는 문자열을 디코딩 할 때 효과적이었습니다. 예 :
@Html.ActionLink(HttpUtility.HtmlDecode("myString","ActionName",..)
WriteLiteral 메서드를 사용할 수도 있습니다
HTML RAW :
@Html.Raw(yourString)
참고 URL : https://stackoverflow.com/questions/4071602/asp-net-mvc-razor-render-without-encoding
'IT story' 카테고리의 다른 글
SSH 구성 : 기본 사용자 이름 재정의 (0) | 2020.04.08 |
---|---|
Subversion에서 내 로그인 이름 이외의 사용자가 될 수 있습니까? (0) | 2020.04.08 |
iTunes Connect : 좋은 SKU를 선택하는 방법? (0) | 2020.04.08 |
배치 스크립트를 통해 프로세스가 실행 중인지 확인하는 방법 (0) | 2020.04.08 |
다른 폴더에서 부분 렌더링 (공유되지 않음) (0) | 2020.04.08 |