如果这是一个愚蠢的问题,请原谅我。我一直无法找到明确说明的答案。
我很少在我的 aspx 页面中使用 Bind() 或 Eval(),而是使用以下语法:(假设这是在 Repeater 控件的 ItemTemplate 中)
<asp:Label id="lblFirstName" runat="server" Text='<%# Microsoft.Security.Application.AntiXss.HtmlEncode(DataBinder.Eval(Container.DataItem, "FirstName").ToString()) %>
我很久以前就开始这样做了,而且从来没有质疑过,但现在我意识到这可能是矫枉过正。现在我正在使用一个在所有地方都使用这种语法的 CMS:
<asp:Label id="lblFirstName" runat="server" Text='<%# Bind("FirstName") %>
所以我想知道,基本上,如果我使用 Bind() 或 Eval() 运行时会自动对输出进行 HtmlEncode 吗?我一直在做不必要的编码吗?