我想将html标签作为字符串插入数据库并将其检索回来。在检索之后,我想将其绑定在Grid中。
作为例子
String word = "<h1>This is Heading </h1> \n <h2>This is body</h2> \t This is after tab";
绑定到网格后,它应该是
This is Heading(in a big font size)
This is body(in small font) - (tab space) This after tab
然而这种方式不起作用。表明
<h1>This is Heading </h1> \n <h2>This is body</h2> \t This is after tab
单词而不是应用真正的HTML行为。我尝试使用'\'特殊字符删除,但结果仍然相同。
请帮帮我。
答案 0 :(得分:2)
你正在使用哪种控件?他们中的大多数人会为你逃脱这样的html,并且要让它“按原样”写出来,你必须设置一个属性。
如果您使用的是GridView,则可以将BoundColumn上的HtmlEncode设置为false。
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.boundfield.htmlencode.aspx
如果您使用的是AutoGenerateColumns,请参阅此SO主题:Prevent HTML encoding in auto-generated GridView columns
答案 1 :(得分:0)
保存到数据库不是问题,您可以直接将字符串保存到数据库中,但在UI上显示时必须使用HttpUyility.HtmlEncode()
,否则它将邀请Javascript Hacking。
但是如果您从WebPage输入数据,请确保输入验证已关闭,否则您将收到XSS脚本攻击错误。
答案 2 :(得分:0)
您可以在文字控件中绑定文本,它将代表实际的HTML格式文本。 喜欢:
ltrlMsg.Text="<div class=\"Message Success\"> Your Message has been sent successfully! </div>"
或者你也可以在你的网格中绑定。