我在页面上有一个asp.net detailsview控件。我注意到它始终显示我的数据库字段中的原始文本,它不解释文本中的html - 因此它显示< B个mytext的< / B个而不只是粗体的mytext。
无论如何都要让控件解释返回数据中的html
此致 熔体
答案 0 :(得分:8)
你可以发布你的控件代码吗?基础是您需要将HtmlEncode属性设置为false。这是因为标签和文本框处理编码的方式不同,这意味着可以保护您免受某些人在这些字段中输入的恶意脚本的侵害。
如果您将其设置为自动生成字段(默认),则需要更改为BoundField或TemplateField,并将违规字段的HtmlEncode Property设置为false
您可以看到code sample of the individual fields in 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>