<%: 、<%= 和 <%# 是 ASP.NET 中用于嵌入代码的特殊标记。它们在 aspx 页面中使用,用于动态生成页面内容或执行服务器端代码。尽管它们看起来相似,但它们在使用方式和作用上有一些区别。
<%: 标记用于进行 HTML 编码,以防止跨站脚本攻击(XSS)。它会自动对嵌入的内容进行 HTML 编码,确保输入的文本在页面上显示时不会被解析为 HTML 标签或脚本代码。这对于显示用户输入的数据非常有用,以增加安全性。示例代码:<%: Model.UserName %>在上面的代码中,Model.UserName 是从服务器端传递到前端的一个字符串变量。使用 <%: %> 标记,将会自动对该变量进行 HTML 编码,确保在页面上输出时不会引发安全问题。<%= 标记用于直接输出变量的值或表达式的结果。它不会对输出的内容进行 HTML 编码。这意味着如果输出的内容包含 HTML 标签或脚本代码,它们将会被解析和执行。示例代码:<%= DateTime.Now.ToString("yyyy-MM-dd") %>上面的代码用于输出当前日期,它将在页面上显示为格式化后的日期字符串,而不是纯文本。<%# 标记用于数据绑定,通常用于绑定控件的属性值或列表的数据源。它将绑定的数据源和控件属性进行关联,确保在页面加载时,数据源中的值被正确地显示在控件上。示例代码:<%# Eval("UserName") %>