인코딩 된 HTML을 데이터베이스에 저장합니다.
올바르게 표시 할 수있는 유일한 방법은 다음과 같습니다.
<div class='content'>
@MvcHtmlString.Create(HttpUtility.HtmlDecode(Model.Content));
</div>
못 생겼어. 이 작업을 수행하는 더 좋은 방법이 있습니까?
답변
이 시도:
<div class='content'>
@Html.Raw(HttpUtility.HtmlDecode(Model.Content))
</div>
답변
사용 Html.Raw()
. Phil Haack은 http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx에 멋진 구문 가이드를 게시했습니다 .
<div class='content'>
@Html.Raw( Model.Content )
</div>
답변
이것은 매우 간단합니다.
HttpUtility.HtmlDecode(Model.Content)
또 다른 솔루션은 HTMLString을 반환 할 수도 있습니다. Razor는 올바른 형식을 출력합니다.
보기 자체에서 :
@Html.GetSomeHtml()
컨트롤러에서 :
public static HtmlString GetSomeHtml()
{
var Data = "abc<br/>123";
return new HtmlString(Data);
}
답변
단순히 HtmlString
수업을 사용할 수도 있습니다.
@(new HtmlString(Model.Content))
답변
인코딩 된 HTML을 데이터베이스에 저장합니다.
Imho 데이터베이스에 HTML 인코딩 된 데이터를 저장해서는 안됩니다. 일반 텍스트 (인코딩되지 않음)로 저장하고 다음과 같이 데이터를 표시하면 html이 자동으로 인코딩됩니다.
<div class='content'>
@Model.Content
</div>
답변
백 슬래시를 표시 할 다른 케이스가 있습니다. \
Razor 및 Java Script로 .
내 @Model.AreaName
모습은 Name1 \ Name2 \ Name3 이므로 표시 할 때 모든 백 슬래시가 사라지고 Name1Name2Name3이 표시 됩니다.
해결 방법을 찾았습니다.
var areafullName = JSON.parse("@Html.Raw(HttpUtility.JavaScriptStringEncode(JsonConvert.SerializeObject(Model.AreaName)))");
페이지 @using Newtonsoft.Json
상단에 추가 하는 것을 잊지 마십시오 chtml
.