首页 > 解决方案 > 从 C# 代码后面停止字符在 HTML 中的编码

问题描述

您好,提前谢谢您。我正在从后面的 C# 代码生成控件,并希望应用一个 onclick 属性,该属性将发送一个模式来阻止显示。当代码执行时,onclick 函数字符串中的撇号被编码为',我想阻止这种情况发生并传递原始文本。

我尝试了以下方法来解决没有解决的问题:
\'
''
<%= myString %>
HtmlString(myString).ToHtmlString();

我可能尝试过其他迭代,但我完全忘记了它们。

这是创建控件的代码部分:

HtmlGenericControl viewMoreInfo = new HtmlGenericControl("span");
//HtmlString onclick1 = new HtmlString($"document.getElementById('{i.il_itemcode}Modal').style.display = 'block'");
string onclick1 = $"document.getElementById('{i.il_itemcode}Modal').style.display = 'block'";
viewMoreInfo.Attributes["onclick"] = onclick1;
viewMoreInfo.Attributes["class"] = "w3-bar-item w3-button w3-white w3-xlarge w3-right";
viewMoreInfo.InnerText = "+";

这是它呈现为的示例:

<span onclick="document.getElementById(&#39;TEST1Modal&#39;).style.display = &#39;block&#39;" class="w3-bar-item w3-button w3-white w3-xlarge w3-right">+</span>

我需要撇号正确渲染才能使功能正常工作。

任何帮助都会得到很大的帮助。

标签: c#htmlwebformscode-behind

解决方案


您的问题具有误导性,因为“我需要撇号正确渲染才能使功能正常工作。” 是不正确的。请注意以下是您的示例的精确副本,并且 click 事件在当前呈现时工作得很好。

<p id="TEST1Modal" style="display:none">This is hidden until clicked</p>
<span onclick="document.getElementById(&#39;TEST1Modal&#39;).style.display = &#39;block&#39;" class="w3-bar-item w3-button w3-white w3-xlarge w3-right">+</span>


推荐阅读