据我所知,这两种标签类型的作用相同。哪一个更好用呢?
它们并不相同:
<%=%> is the same as `Response.Write`
<%:%> adds `Server.HtmlEncode` to `Response.Write`
<%:%>
更受青睐(自.NET 4.0以来添加),因为它在输出字符串之前添加了编码输出的安全措施。<%=Server.HtmlEncode(val)%>
。<%: %>
会自动对值进行HTML编码,因此建议使用它。但是,它只适用于.NET 4。
<%: someString %>
就像
<%= HttpUtility.HtmlEncode(someString) %>
当您需要对字符串进行消毒(即来自用户输入且可能具有恶意的内容)时,可以使用 " <%:"。
基本上,<&= 会将字符串原封不动地写入 HTML,而 <%: 等同于编写 <%= Html.Encode("something") %>。