답변:
콘텐츠가 mystring
... 라는 문자열 안에 있다고 가정합니다 .
당신이 사용할 수있는:
@Html.Raw(mystring)
또는 문자열을 모델로 HtmlString
구현 IHtmlString
하거나 직접 인라인으로 사용하고 regular을 사용 하는 다른 유형으로 변환 할 수 있습니다 @
.
@{ var myHtmlString = new HtmlString(mystring);}
@myHtmlString
razor
구문과 함께 최신 MVC 3을 사용 하고 Html.Raw
있으며 확실히 사용할 수 있습니다.
당신이 사용할 수있는
@{ WriteLiteral("html string"); }
Html.Raw()
작동하지 않습니다
@MvcHtmlString.Create(ViewBag.Stuff)
Dommer가 제안한대로 사용 하는 것 외에도 AntiXSS 라이브러리를 제안 된대로 사용하는 것이 좋습니다 http://haacked.com/archive/2010/04/06/using-antixss-as-the-default-encoder-for-asp -net.aspx
거의 모든 가능한 XSS 공격 문자열을 인코딩합니다.
RazorEngine에서 템플릿 기능을 사용하는 완전한 예 (예 : 이메일 생성) :
@model SomeModel
@{
Func<PropertyChangeInfo, object> PropInfo =
@<tr class="property">
<td>
@item.PropertyName
</td>
<td class="value">
<small class="old">@item.OldValue</small>
<small class="new">@item.CurrentValue</small>
</td>
</tr>;
}
<body>
@{ WriteLiteral(PropInfo(new PropertyChangeInfo("p1", @Model.Id, 2)).ToString()); }
</body>
@Html.Raw()