在ASP.NET(MVC2)中,<%: %>的作用是什么?

6

最近有一个同事提交了一组变更集,其中许多形式为<%= (...) %>的表达式被改为<%: (...) %>。

我模糊地记得曾经听说过<%:的作用,但是无法回忆起来。已经太晚了,无法联系到我的同事,而且Google和Bing似乎都无法搜索字符串"<%:"。

请问有人可以给我解释一下吗?


相关,但不包括此结构-https://dev59.com/HnVC5IYBdhLWcg3w21Mq - ChrisF
3个回答

12

如果字符串尚未进行编码,则它会对其进行Html编码。

“尚未编码”是为什么引入了MvcHtmlString的原因。MVC2从许多HtmlHelper方法返回MvcHtmlString,以表示不应重新编码的字符串。 <%: %>知道不要重新编码。

参见What is an MvcHtmlString and when should I use it?,进行深入讨论。


8

它会自动使用Html.Encode()来包装渲染输出,以避免脚本攻击。


1
一种记忆这个的方法是(感谢:Scott Hanselman)认为 = 是一个关闭的门。现在将门旋转90度并从同一视角查看它,你会看到:

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接