2017-10-25 2 views
0

뷰에서 컨트롤러로 모델의 설명을 보내려합니다. 그러나 예외 특수 문자의 경고를 다시 던졌습니다. 컨트롤러에서 [ValidateInput (false)]없이 HttpUtility.HtmlEncode를보기에 사용하고 싶습니다. 것이 가능하다 ?HttpUtility.HtmlEncode를 사용하여 뷰에서 컨트롤러로 모델을 보내는 방법

@model UserModel 
@using (Html.BeginForm("CreateUser", "Home", FormMethod.Post)) 
{ 
    @Html.TextAreaFor(HttpUtility.HtmlEncode(x => x.Description)) 

    <button type="submit" id="btnCreate">Create</button> 
} 
+0

텍스트 영역에 html 문자열을 입력하고 컨트롤러에 전달하려고하는 것처럼 보입니다. 이는 잘못된 접근입니다. 나는 많은 텍스트 편집자가 있다는 것을 제안하고 싶다. 그냥 Cssditor에 대한 js와 css를 연결해야합니다. 귀하의 케이스에서 가장 좋은 해결책은 –

+0

입니다. @ Html.TextBoxFor (HttpUtility.HtmlEncode (x => x.Description))를 사용하는 방법 –

답변

0

모델에 [AllowHtml] 속성을 추가하려고 했습니까?

public class ViewModel 
{ 
    [AllowHtml] 
    public string Description { get; set; } 
} 

아니요, 보안 버그가 아닙니다. ASP.Net MVC에는 자동 HTML 인코딩이 있습니다. RazorHtml.Encode 방법을 포함합니다. 이 메서드를 호출하면 이중 인코딩됩니다. 따라서 Html.Encode를 두 번 사용할 수 없습니다.

+0

답변을 알고 있습니다. 하지만 보안상의 문제입니까? 보기에서 HttpUtility.HtmlEncode를 사용하고 싶습니다. –