ASP.NET(MVC2)中<%:%>做了什么?

Tor*_*gen 6 asp.net

最近一位同事检查了变更集,其中表单<%=(...)%>上的大量表达式被更改为<%:(...)%>.

我有一个模糊的回忆,听到了什么<%:做了,但不记得了.打电话给我的同事已经太晚了,Google和Bing似乎都无法搜索字符串"<%:".

有人可以开导我吗?

Rob*_*Rob 12

它HtmlEncodes字符串,如果尚未编码.

"还没有被编码的​​部分"是MvcHtmlString被引入的原因.MVC2从许多HtmlHelper方法返回MvcHtmlString来表示不应重新编码的字符串.<%:%>知道不重新编码.

请参阅什么是MvcHtmlString以及何时使用它?进行了很好的讨论.


Tah*_*aza 8

它会自动将呈现的输出包装在Html.Encode()中以避免脚本攻击.