ASP.NET引号字符编码在设置控件的属性时会导致问题

我有一个ASP.NET Web应用程序,在某些时候我这样做:

mycontrol.stringparameterforjscript = "document.getElementById('" + myotherparam + "').value = 'Hello'"; 

问题是这件事不起作用。 正如您所看到的,这在某些标签的某些事件中设置了javascript。 当页面被重新编译时,问题是我的参数看起来像这样:

  

我必须确切地说,我正在尝试设置的这个文本框位于ListView的InsertItemTemplate中,并且初始化并不容易。 出于这个原因,我插入了我在文本框的load事件处理程序中看到的初始化代码。 我可以说一件事:如果这段代码引用了一个位于页面中的文本框,我从页面的load事件处理程序中调用了这段代码,这样就可以了。 但我不知道在这种特殊情况下该怎么做。

我也在考虑创建一个webcantrol来处理这个问题的可能性。 我真的不知道在这种情况下最好的做法是什么。

我认为您可能需要在分配中的两个字符串文字中使用@,并删除斜杠:

 mycontrol.stringparameterforjscript = @"document.getElementById('" + myotherparam + @"').value = 'Hello'"; 

编辑

我是怎么做到的

在.aspx上:

  

在代码中:

 protected void Page_Load(object sender, EventArgs e) { string myotherparam = "paramval"; tbTest.Attributes.Add("onfocus", @"document.getElementById('" + myotherparam + @"').value = 'Hello'"); } 

结果输出:

  

好的,我终于成功了。 HTML编码的字符串由javascript引擎识别,怎么可能? 正如您将看到的,在发生的事情中没有什么可担心的。