我在网页上有一个 asp.net 的 detailsview 控件。我发现它总是显示来自数据库字段的原始文本,而不解释文本中的 html —— 所以它显示 < b>mytext< /b> 而不是只有粗体的 mytext。
有没有办法让控件解释返回的数据中的 html 呢?
谢谢 melt
我在网页上有一个 asp.net 的 detailsview 控件。我发现它总是显示来自数据库字段的原始文本,而不解释文本中的 html —— 所以它显示 < b>mytext< /b> 而不是只有粗体的 mytext。
有没有办法让控件解释返回的数据中的 html 呢?
谢谢 melt
您能发布您控件的代码吗?基本上,您需要将HtmlEncode属性设置为false。这是由于标签和文本框处理编码的方式不同,这是为了保护您免受可能输入在这些字段中的恶意脚本。
如果您将其设置为自动生成字段(默认),则需要改为使用BoundField或TemplateField,并将有问题的字段的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>