当前位置:  开发笔记 > 编程语言 > 正文

我可以阻止.NET吃ID吗?

如何解决《我可以阻止.NET吃ID吗?》经验,为你挑选了3个好方法。

我现在是一名信息架构师和JavaScript开发人员,但最近我又重新开始进行后端编码.而且,在尝试将HTML原型集成并与我们基于C#的CMS一起工作的同时,我开始向我们的程序员吹嘘HTML ID属性被.NET任意重写为表单元素.

我可以理解.NET更改ID的代码隐藏推理,但是在尝试开发例如jQuery增强接口时你不能再使用ID这一事实会引起一些摩擦.我该怎么做才能解决这个问题?

我尝试过使用class属性,但这真的很糟糕,不是它的意思,也没有解决.NET有效改变渲染源的问题.这也意味着CSS现在不太有用,创建和维护效率也较低.

任何提示或建议非常感谢 - 任何少数不眠之夜...



1> Glenn Slaven..:

简短的回答是否定的,对于webforms,id总是可以根据元素的嵌套重写.您可以通过ClientID属性访问id,因此您可以将id设置为页面/控件末尾的脚本中的变量,然后将它们放入jQuery中.

这样的事情:

Click Me


这是我知道的黑客攻击,但它会奏效.(我应该注意未启动的,我正在使用原型$ get by id方法)



2> Jon Galloway..:

一种方法是手动覆盖ID:

public override string UniqueID
{
  get { return this.ID; }
}
public override string ClientID
{
  get { return this.ID; }
}

Rick Strahl撰写了一篇博客文章,其中提供了有关该方法的更多信息.



3> Keith..:

查看ASP.Net MVC - 它解决了ASP.Net默认生成的过度杀死对象层次结构.

这个网站是用MVC编写的(我认为) - 看看它的结构.如果我现在正在开展一个新项目,我会先考虑它

如果你坚持使用基本的ASP.Net,那么要小心覆盖ClientID和UniqueID - 它往往会破坏许多Web控件.

我发现的最好方法是将不可读的ClientID传递给Javascript.

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有