C# attributecollection.add 撇号

Posted

技术标签:

【中文标题】C# attributecollection.add 撇号【英文标题】:C# attributecollection.add Apostrophe 【发布时间】:2011-12-22 19:50:42 【问题描述】:

我有问题。

这些是我的代码行:

htmlTableRow row = new HtmlTableRow();
row.Attributes.Add("style", "cursor: pointer;");
row.Attributes.Add("onClick", string.Format("toggle('0');", AttributeName));

我在 .Net 2.0 中使用过它,它运行良好。但现在我正在使用 .net 4.0 和撇号 在我的网页中被转换为',它不再起作用了。

我怎样才能得到撇号本身或绕过这个问题??

注意好像是known problem...

【问题讨论】:

【参考方案1】:

将撇号编码为' 是完全有效的,所以这不是您的实际问题。使用onclick="toggle('asdf')"onclick="toggle('asdf')" 是等价的。

演示:http://jsfiddle.net/Guffa/FkYut/

您必须寻找代码不起作用的其他原因。

【讨论】:

嗨,当我在我的源代码中进行查找/替换时,一切都再次正常...这就是为什么我仍然认为这是问题...【参考方案2】:

好的...还没回答...所以这是我的工作。

HtmlGenericControl dynDiv = new HtmlGenericControl("div");

dynDiv = Replace(dynDiv, "'", "'");

public HtmlGenericControl Replace(HtmlGenericControl htmlGenericControl, string    
source, string target)

     StringWriter sw = new StringWriter();
     HtmlTextWriter htmlTextWriter = new HtmlTextWriter(sw);
     htmlGenericControl.RenderControl(htmlTextWriter);
     string str = sw.GetStringBuilder().ToString();

     str = str.Replace(source, target);
     htmlGenericControl.InnerHtml = str;

     return htmlGenericControl;

小错误 - 出于某种原因,它复制了 ResultPage.aspx 中的“div”标签,但它不会干扰代码,所以我不在乎。

但是 - 当我尝试将它用于 HtmlGenericControl script = new HtmlGenericControl("script"); 时,它会破坏代码。所以在这个解决方法是直接在 ResultPage.aspx --> 视图设计器 --> 源代码中植入实际的 java 脚本代码。

<script type="text/javascript">
    My Script (with the apostrophe...)
</script>

享受吧! :)

【讨论】:

以上是关于C# attributecollection.add 撇号的主要内容,如果未能解决你的问题,请参考以下文章

C#进阶C# 泛型

C#进阶C# 匿名方法

C#进阶C# 多线程

C# 教程

[C#教程01]C# 简介

用 C# 编写 C# 编译器,先有鸡还是先有蛋?