无法弄清楚 Html 编码用法
Cannot figure out Html Encoding usage
我正在开发 MVC 网络应用程序。我有一个 Razor 和 JavaScript.
的页面组合
剃须刀:
@{
ViewBag.Title = "Edit";
string initialImage = "<img src='/Site_Data/BIO/Bio.jpg' title='BIO'>";
}
JavaScript:
<script type="text/javascript">
$("#Photos").fileinput({
initialPreview: [@initialImage],
我想要的是:
<script type="text/javascript">
$("#Photos").fileinput({
initialPreview: ["<img src='/Site_Data/BIO/Bio.jpg' title='BIO'>"],
我得到的(在源代码视图中)是:
<script type="text/javascript">
$("#Photos").fileinput({
initialPreview: [<img src='/Site_Data/BIO/Bio.jpg' title='BIO'>],
我尝试了 HtmlEncode 和 HtmlDecode 的多种组合(在 Razor 和 JavaScript 部分)但无法弄清楚。
请指教。谢谢!
默认情况下 asp.net mvc 将对您的字符串进行编码。使用未编码的字符串使用 Html.Raw(string):
<script type="text/javascript">
$("#Photos").fileinput({
initialPreview: ["@Html.Raw(initialImage)"],
Html.Raw 在不进行任何 html 编码的情况下呈现给定的内容,
所以
@Html.Raw(initialImage);
将呈现为
<img src='/Site_Data/BIO/Bio.jpg' title='BIO'>
在您的 js 中,您只需要使用双引号对其进行编码:
<script type="text/javascript">
$("#Photos").fileinput({
initialPreview: ["@Html.Raw(initialImage)"],
但是,当您在其中编码字符时,例如 ViewBag.Something = ">";
原始版本是 >.
要返回实际 html,您需要
Html.Raw(HttpUtility.HtmlDecode(EncodedContent));
我正在开发 MVC 网络应用程序。我有一个 Razor 和 JavaScript.
的页面组合剃须刀:
@{
ViewBag.Title = "Edit";
string initialImage = "<img src='/Site_Data/BIO/Bio.jpg' title='BIO'>";
}
JavaScript:
<script type="text/javascript">
$("#Photos").fileinput({
initialPreview: [@initialImage],
我想要的是:
<script type="text/javascript">
$("#Photos").fileinput({
initialPreview: ["<img src='/Site_Data/BIO/Bio.jpg' title='BIO'>"],
我得到的(在源代码视图中)是:
<script type="text/javascript">
$("#Photos").fileinput({
initialPreview: [<img src='/Site_Data/BIO/Bio.jpg' title='BIO'>],
我尝试了 HtmlEncode 和 HtmlDecode 的多种组合(在 Razor 和 JavaScript 部分)但无法弄清楚。 请指教。谢谢!
默认情况下 asp.net mvc 将对您的字符串进行编码。使用未编码的字符串使用 Html.Raw(string):
<script type="text/javascript">
$("#Photos").fileinput({
initialPreview: ["@Html.Raw(initialImage)"],
Html.Raw 在不进行任何 html 编码的情况下呈现给定的内容, 所以
@Html.Raw(initialImage);
将呈现为
<img src='/Site_Data/BIO/Bio.jpg' title='BIO'>
在您的 js 中,您只需要使用双引号对其进行编码:
<script type="text/javascript">
$("#Photos").fileinput({
initialPreview: ["@Html.Raw(initialImage)"],
但是,当您在其中编码字符时,例如 ViewBag.Something = ">";
原始版本是 >.
要返回实际 html,您需要
Html.Raw(HttpUtility.HtmlDecode(EncodedContent));