다음은 텍스트 출력에 <textarea>
HTML 요소에 입력 된 줄 바꿈을 사용하는 것입니다.디스플레이 줄 바꿈 asp.net mvc 면도칼
MvcHtmlString.Create(Model.Post.Description.Replace(Environment.NewLine, "<br />"))
더 좋은 방법이 있나요?
다음은 텍스트 출력에 <textarea>
HTML 요소에 입력 된 줄 바꿈을 사용하는 것입니다.디스플레이 줄 바꿈 asp.net mvc 면도칼
MvcHtmlString.Create(Model.Post.Description.Replace(Environment.NewLine, "<br />"))
더 좋은 방법이 있나요?
텍스트를 HTML로 인코딩하지 않기 때문에 코드는 XSS 공격에 취약합니다. 안전하게 할 수있는 뷰에서 다음
var result = string.Join(
"<br/>",
Model.Post.Description
.Split(new[] { Environment.NewLine }, StringSplitOptions.None)
.Select(x => HttpUtility.HtmlEncode(x))
);
return MvcHtmlString.Create(result);
과 : 나는 다음 당신에게 추천이 당신이 Cross-site scripting을 피하기 사용
: CSS white-space property을 고용하고 더 나은/멋진 해결책이있다
@Html.SomeHelper()
아마도 태그 안에 텍스트를 출력 할 수 있습니다.
(XSS) 취약점 ...
<p style="white-space: pre-line">@Model.Message</p>
ork는 ASP.NET MVC 면도기 엔진과 같은 매력을 가지고 있습니다.
사실 이것은 허용 된 대답이어야합니다. op가 더 좋은 방법을 묻기 때문에! – rjso
저에게 효과적입니다.
<p class="message">
@Html.Raw("<p>" + Model.Text + "</p>")
</p>
문자열 모델. 텍스트는 < br /> 태그 내부에 있습니다.
이것은 XSS 공격에 개방적입니다. ''을'Model.Text'에 넣으면 형편이됩니다. – trailmax
여기 내 해결책이 있습니다.
@MvcHtmlString.Create(Regex.Replace(Html.Encode(Model.Address), Environment.NewLine, "<br />", RegexOptions.Multiline))
물론 물론 Regex가 작동하려면 다음 문장을 사용해야합니다.
@using System.Text.RegularExpressions
누군가에게 유용 할 것입니다.
줄 바꿈을 공백으로 대체하면이 도우미가 줄 바꿈을 출력하는 방법을 실제로 볼 수 없습니다. –
@ 대린 - 내 부분에 불량 복사/붙여 넣기가 업데이트되었습니다. – raklos
dup http://stackoverflow.com/questions/5032097/asp-net-mvc-convert-n-new-line-to-html-breaks – BlackTigerX