为什么当我不想要Jquery时将其呈现为HTMLString?

时间:2018-07-29 00:53:32

标签: jquery asp.net-mvc-4 razor

因此,我正在尝试粘贴图像URL,但我知道问题在于后端正确返回了图像URL,但由于某些原因,剃刀将其渲染为HtmlString(我的问题是图像路径上有“&”,并且剃刀将其替换为"&"

以这个为例 (不获取图片网址,仅是为了了解问题的原因):

@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字符串?

谢谢!

1 个答案:

答案 0 :(得分:2)

您得到的是 <button type="button" name="type" id="btn_encrypt" value="encrypt">Encrypt</button> <button type="button" name="type" id="btn_decrypt" value="decrypt">Decrypt</button> 而不是&amp;,因为剃刀是HTML编码的c#表达式(对您的&方法的调用,它返回一个字符串)的结果。

如果您不想进行编码,请使用GetPictureSrc方法。

Html.Raw

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