为什么这个(')在我动态添加时出现

时间:2013-10-24 13:37:04

标签: c# asp.net javascript-events code-behind dynamically-generated

为什么这个不需要的字符添加了动态创建的文本框?如何把它拿出来

onkeyup="numeri_validator(this,'clockin_100001_1','total_100001_1')"

这是背后的代码

string s="numeri_validator(this,'" + textboxClockIn.ID.ToString() + "','"+textboxTotal.ID.ToString()+"')";

            string decodedString = System.Web.HttpUtility.HtmlDecode(s);

            textboxClockIn.Attributes.Add("onkeyup",decodedString);
            textboxClockOut.Attributes.Add("onkeyup", "numeri_validator(this,'" + textboxClockOut.ID + "','" + textboxTotal.ID + "')");

两种结果相同

当我打破这是我的休息结果

numeri_validator(this,'clockin_100001_1','total_100001_1')

请指教我

由于

2 个答案:

答案 0 :(得分:2)

这实际上正是预期的结果。发生的事情是你的代码“转义”了所有可能导致HTML或SQL问题的字符。如果它没有这样做,你可能会得到奇怪的结果,你的文本意外结束或有错误的数据。

在这种情况下,您在字符串中的'符号将更改为其转义版本,在本例中为“。

如果您不希望发生这种情况,那么您不应该使用HTMLDecode()。但是,建议不要这样做,因为如果您尝试解析该代码,可能会导致问题。

答案 1 :(得分:0)

实际上Javascript不会与此混淆(')它将作为'但是如果你动态创建控件那么你需要小心翼翼地完成由.net分配的ID如果您不知道

会导致问题

由于