动态生成的锚标记的onclick()属性中传递的值以第一个空格结束

时间:2016-10-22 16:11:05

标签: javascript c# jquery html asp.net

必须在锚标记的onlclick()中传递两个参数,这些参数是从后面的代码(c#)生成的。如果第一个参数中有任何空格,则用双引号关闭onclick()。它没有取得完整的价值。

         LiteralControl lc2 = new LiteralControl();
                lc2.Text = String.Format("<a href='#' class='easyui-linkbutton' " + @"onclick=addTab(" + childMenus[j].MenuName.ToString() + "," + url + @")> " + @" Setting " + @" </a>");

浏览器检查元素的屏幕截图: enter image description here

第一个参数的值是&#34;考试和课程设置&#34;但它会在&#34;考试&#34;之后结束。在第一个空间。它假设空间为结束。

1 个答案:

答案 0 :(得分:0)

我已更改lc2字符串中的控件以使用字符串变量来演示如何创建转义的html:

string MenuName = "Exam and course setting";
string url = "http://stackoverflow.com";

var lc2 = "<a href='#' class='easyui-linkbutton' " + @"onclick='addTab(""" + MenuName.ToString() + @""",""" + url + @""")'>" + @"Setting" + @"</a>";

将生成以下内容:

<a href='#' class='easyui-linkbutton' onclick='addTab("Exam and course setting","http://stackoverflow.com")'>Setting</a>

如果它们包含单引号或双引号,请不要忘记对控件中的任何文本进行HTMLEncode。您可以使用&#39;代替'&#34;的{​​{1}}。