首页 > 解决方案 > 当我不想要它时,为什么 Jquery 呈现为 HTMLString?

问题描述

所以,我试图粘贴一个图像 URL,我知道问题是后端正确返回了一个图像 url,但是由于某些原因 razor 将它呈现为 HtmlString (我的问题是图像有“& " 在路径上,而 razor 将其替换为"&")

以此为例 (不是检索图片网址,只是为了了解问题):

@functions
{
    private String GetPictureSrc()
    {
       return "&&&&";
    }
}

然后在javascript部分:

        $("#anImage").attr("src", "@GetPictureSrc()");

当我看到生成的代码时,我看到了:

<img id="anImage" src="&amp;amp;&amp;amp;&amp;amp;&amp;amp;">

我想看看这个函数到底返回了什么!

<img id="anImage" src="&&&&">

编辑: 此外,我刚刚发现问题出在 Jquery 中,而不是剃刀,如果我这样尝试,它工作正常,但不幸的是不是我需要的......

<img id="anImage" src="@GetPictureSrc()">

如何告诉 jquery 不要 HtmlFy 字符串?

提前致谢!

标签: jqueryasp.net-mvc-4razor

解决方案


你得到&amp;的不是&因为 razor 是 HTML 编码你的 c# 表达式的结果(对你的GetPictureSrc方法的调用,它返回一个字符串)。

Html.Raw如果您不希望发生编码,请使用方法。

$("#anImage").attr("src", "@Html.Raw(GetPictureSrc())");

这将为您提供非 HTML 编码的值。


推荐阅读