5

我在页面上有一个 asp.net detailsview 控件。我注意到它总是显示来自我的数据库字段的原始文本,它不会解释文本中的 html —— 所以它显示 < b>mytext</b> 而不仅仅是 mytext 粗体。

无论如何要让控件解释正在返回的数据中的html

问候融化

4

1 回答 1

8

你能发布你的控制代码吗?基础是您需要将 HtmlEncode 属性设置为 false。这是由于标签和文本框处理编码的方式不同,这是为了保护您免受有人可能在这些字段中输入的恶意脚本的侵害。

如果您将其设置为自动生成字段(默认),则需要改为更改为BoundFieldTemplateField并将违规字段的HtmlEncode 属性设置为 false。

您可以在 MSDN 中查看各个字段的代码示例,这是一个简化的示例:

<asp:DetailsView runat="server" AutoGenerateRows="False">
  <Fields>
    <asp:BoundField DataField="ProductName" HeaderText="Product" />
    <asp:BoundField DataField="CategoryName" HeaderText="Category" />
    <asp:BoundField DataField="HTMLField" HeaderText="HTML" HtmlEncode="false" />
  </Fields>
</asp:DetailsView>
于 2010-01-10T15:50:07.600 回答