我将头撞在墙上,想知道为什么当我将HTML属性包含在单引号中时,例如id标记<div id='test'></div>
:<div id="test"></div>
,当呈现并发送给它们时,它们会自动替换为双引号:客户端供查看。
有没有一种方法可以在属性中强制使用单引号?
到目前为止,我已经尝试了@Html.Raw("'test'")
,@Html.Raw("id='test'")
等等,无论我做什么,引号仍然被替换。我看到很多无自动转换成功使用单引号的例子,所以我想知道发生了什么,是否有人可以解决这个问题
我正在使用ASP.Net MVC 5,Bootstrap 3.0,Jquery和Less,就JavaScript库和标准Razor视图而言,没有什么太奇特的了。
感谢您的回答。
剃刀引擎自动转义任何HTML输出,使用Html.Raw
告诉引擎按原样输出。您将需要使用Html.Raw
而不是属性来完成HTML的整个块,例如
@Html.Raw("<div id='test'></div>")
或者,您可以将属性输出为文字,例如
<div @("id='active'")></div>
有趣的是,好像浏览器正在预处理HTML并将单引号替换为双引号。我检查了来自服务器的结果,我得到了
<div id='active'></div>
但是,当我随后在浏览器(Chrome 31 / IE 11)中查看HTML时,单引号已替换为双引号。这也不只是显示,因为当我保存浏览器的输出时,它仍然带有双引号。
这可能是大多数现代浏览器的规范,但不幸的是,您似乎对此没有太多控制权。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句