【问题标题】:HtmlTextWriter.WriteAttribute is inserting html entity references where I don't want themHtmlTextWriter.WriteAttribute 在我不想要它们的地方插入 html 实体引用
【发布时间】:2014-03-19 05:58:06
【问题描述】:

由于某种原因,HtmlTextWriter 在我的 html 输出中插入了奇怪的东西。在下面的代码中,我尝试创建一个包含图像的可点击 div:

writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "location.href = '" 
    + TargetHTTPRef + "'");
writer.RenderBeginTag(HtmlTextWriterTag.Div);
writer.AddAttribute(HtmlTextWriterAttribute.Src, ThumbFileName);
writer.RenderBeginTag(HtmlTextWriterTag.Img);
writer.RenderEndTag();

我得到以下输出:

<div class="leftGallery" onclick="location.href = &#39;http://www.google.com&#39;">
<img src="./images/services/47_Kayak%20Thumb.jpg" /><div class="galleryPanel">

所以我得到 ' 和 %20 出现在输出中应该出现撇号和空格的地方。有没有办法阻止这种情况??

【问题讨论】:

    标签: c# html htmltextwriter


    【解决方案1】:

    尝试另一个HtmlTextWriter.AddAttribute overload

    writer.AddAttribute(
        HtmlTextWriterAttribute.Onclick,
        "location.href = '" + TargetHTTPRef + "'",
        false);
    
    writer.AddAttribute(HtmlTextWriterAttribute.Src, ThumbFileName, false);
    

    此重载的第三个参数指示是否对属性及其值进行编码。

    【讨论】:

    • 似乎适用于撇号。但是不适用于空间,但我认为这可能没问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-08
    • 1970-01-01
    • 1970-01-01
    • 2022-11-22
    • 1970-01-01
    相关资源
    最近更新 更多