<和<互相替换的问题
数据库中的内容是这样的:
<p>
abc<br/>
cde<br/>
</p>
读出到网页,赋值给hiddenfile,源文件怎么就变成了
<p>
abc <br/>
cde <br/>
</p>
然后读出到网页上显示的是
<p>
abc<br/>
cde<br/>
</p>
现在让网页上显示:
abc
cde
------解决方案--------------------hiddenfile是什么东东?你看下控件有没有自动html编码的属性设置,要设置为false。
------解决方案--------------------赋值给label。
hiddenfile是什么东东?
------解决方案--------------------asp.net 4如果对控件赋值,为了安全已经会自动htmlencode
如果你不想控件自动编码,需要重写htmlencode
你可以
public class HtmlAttributeNoEncoding : System.Web.Util.HttpEncoder
{
protected override void HtmlAttributeEncode(string value, System.IO.TextWriter output)
{
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
base.HtmlAttributeEncode(value, sw);
//举个例子,把'还原',其他类似
output.Write(sw.ToString().Replace("'","'").Replace("<","<");
}
}
然后在web.config增加
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpRuntime encoderType="HtmlAttributeNoEncoding" />
------解决方案--------------------HiddenField 又不会显示
------解决方案--------------------用
HttpUtility.HtmlDecode试一试:
HTML decoding reverses the encoding. For example, when embedded in a block of text, the characters < and > are encoded as < and > for HTTP transmission.
http://msdn.microsoft.com/en-us/library/7c5fyk1k.aspx
------解决方案--------------------string str = @"<p>
abc <br/>
cde <br/>
</p>";
str = HttpUtility.HtmlDecode(str);
------解决方案--------------------绑定到HiddenField肯定会自动html编码的,你要取出它的值时进行Html解码,然后再用。
------解决方案--------------------js方法中,不能用innerText,应该改为var output = converter.innerHTML;