【问题标题】:Howto get 'real' single quotes如何获得“真正的”单引号
【发布时间】:2012-04-22 16:26:54
【问题描述】:

我有一个 asp.net 网页。

是否有可能只获得“真正的”单引号客户端?

服务器端:

this.Attributes["onclick"] = "$('#button').click();";

客户端:

onclick="$('#button').click();" 

给出一个错误。

警报工作得很好,即客户端:

onclick="alert('hello#amp;39;);".

似乎我需要“真正的”单引号才能使用 jQuery。

【问题讨论】:

  • Jason:是的,我已经得出了这些结论。我不喜欢在源文件中使用 html 元素并使用 runat=server 的想法。给页面添加动态控件时也会成为问题。我知道此更改与安全性(XSS)有关,但如果您问我,这似乎只是一个错误。似乎 MS 没有像上面那样彻底测试案例,或者他们需要开始更喜欢 js ;)
  • Stark 这与 Jason 发布的链接相同
  • 看看this是否有帮助。

标签: javascript asp.net code-behind quotes


【解决方案1】:

这是标准的 ASP.NET 还是 ASP.NET MVC?似乎输出正在被转义,但没有示例代码或更多细节我无法确定。

你的代码示例

this.Attributes["onclick"] = "$('#button').click();";

如何从服务器呈现?来自控件?

更新

此属性值编码是在 .NET 4.0 中引入的。如果必须,您可以将 web.config 中的 controlRenderingCompatibilityVersion 设置为“3.5”,请参阅 pages Element (ASP.NET Settings Schema)PagesSection.ControlRenderingCompatibilityVersion Property

能否(而不是将 onclick 逻辑直接放在属性值中)将函数记录在其他地方并将函数名称设置为 onclick 值?还是使用jQuery注册click handler客户端?

【讨论】:

  • 标准 ASP.NET。为超链接(页面上的 HyperLink 控件)在页面代码后面(prerender)呈现。
  • 谢谢,我创建了一个示例应用程序,可以重现您的问题,在快速谷歌搜索后,我发现您并不孤单,很多其他人在升级到 .NET 4.0 后也遇到了同样的问题.我已经用一些建议更新了我的答案。
  • 谢谢马克。是的,我制作了一个 jQuery 就绪函数来分配点击处理程序。在这种情况下它会做,我想知道当事情是动态的时该怎么办......
  • 您可以使用ClientScriptManager,如下所示:msdn.microsoft.com/en-us/library/btf44dc9.aspx
  • 谢谢马克。我知道 ClientScriptBlocks。如果你问我这对于我想要完成的小事来说有点大;)
猜你喜欢
  • 2012-08-14
  • 1970-01-01
  • 2019-08-25
  • 1970-01-01
  • 2022-07-31
  • 2016-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多