为什么 Jquery 在我不想要的时候呈现为 HTMLString?
Why Jquery renders as HTMLString when I don't want it?
所以,我正在尝试粘贴图像 URL,我了解到问题是后端正在正确返回图像 url,但由于某些原因,razor 渲染了它as HtmlString(我的问题是图片路径上有“&”,razor 将其替换为 "&"
)
以此为例(不是取图url,只是想了解一下问题):
@functions
{
private String GetPictureSrc()
{
return "&&&&";
}
}
然后在 javascript 部分:
$("#anImage").attr("src", "@GetPictureSrc()");
当我看到生成的代码时,我看到了这个:
<img id="anImage" src="&amp;&amp;&amp;&amp;">
我想看看函数到底返回了什么!
<img id="anImage" src="&&&&">
编辑:
另外,我刚刚发现问题出在Jquery,而不是剃须刀,如果我这样尝试,它可以正常工作,但不幸的是这不是我需要的......
<img id="anImage" src="@GetPictureSrc()">
如何告诉 jquery 不要对字符串进行 HtmlFy?
提前致谢!
您得到的是 &
而不是 &
,因为 razor 是 HTML 编码您的 c# 表达式的结果(调用您的 GetPictureSrc
方法,returns一个字符串)。
如果您不想进行编码,请使用 Html.Raw
方法。
$("#anImage").attr("src", "@Html.Raw(GetPictureSrc())");
这将为您提供未 HTML 编码的值。
所以,我正在尝试粘贴图像 URL,我了解到问题是后端正在正确返回图像 url,但由于某些原因,razor 渲染了它as HtmlString(我的问题是图片路径上有“&”,razor 将其替换为 "&"
)
以此为例(不是取图url,只是想了解一下问题):
@functions
{
private String GetPictureSrc()
{
return "&&&&";
}
}
然后在 javascript 部分:
$("#anImage").attr("src", "@GetPictureSrc()");
当我看到生成的代码时,我看到了这个:
<img id="anImage" src="&amp;&amp;&amp;&amp;">
我想看看函数到底返回了什么!
<img id="anImage" src="&&&&">
编辑: 另外,我刚刚发现问题出在Jquery,而不是剃须刀,如果我这样尝试,它可以正常工作,但不幸的是这不是我需要的......
<img id="anImage" src="@GetPictureSrc()">
如何告诉 jquery 不要对字符串进行 HtmlFy?
提前致谢!
您得到的是 &
而不是 &
,因为 razor 是 HTML 编码您的 c# 表达式的结果(调用您的 GetPictureSrc
方法,returns一个字符串)。
如果您不想进行编码,请使用 Html.Raw
方法。
$("#anImage").attr("src", "@Html.Raw(GetPictureSrc())");
这将为您提供未 HTML 编码的值。