首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

&lt;和<互相替换的有关问题

2013-02-24 
和互相替换的问题数据库中的内容是这样的:pabcbr/cdebr//p读出到网页,赋值给hiddenfile,源文件

&lt;和<互相替换的问题
数据库中的内容是这样的:
<p>
abc<br/>
cde<br/>
</p>
读出到网页,赋值给hiddenfile,源文件怎么就变成了
&lt;p>
abc &lt;br/>
cde &lt;br/>
&lt;/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); 
 
     //举个例子,把&#39;还原',其他类似
            output.Write(sw.ToString().Replace("&#39;","'").Replace("&lt;","<"); 
        }
    }


然后在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 &lt; and &gt; for HTTP transmission.

http://msdn.microsoft.com/en-us/library/7c5fyk1k.aspx
[解决办法]
string str = @"&lt;p>
abc &lt;br/>
cde &lt;br/>
&lt;/p>";
            str = HttpUtility.HtmlDecode(str);

[解决办法]
绑定到HiddenField肯定会自动html编码的,你要取出它的值时进行Html解码,然后再用。
[解决办法]
js方法中,不能用innerText,应该改为var output = converter.innerHTML;

热点排行