<和<互相替换的问题
数据库中的内容是这样的:
<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;