ASP.NET:DetailsView控件无法解释HTML。

5

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

有没有办法让控件解释返回的数据中的 html 呢?

谢谢 melt

1个回答

8

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

如果您将其设置为自动生成字段(默认),则需要改为使用BoundFieldTemplateField,并将有问题的字段的HtmlEncode Property设置为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>

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