我对现有的应用程序进行了一些更改,该应用程序以前只是简单的 HTML 和 Javascript。为了添加服务器端功能,我选择了 ASP.NET,并利用了母版页概念。不幸的是,在一个巨大的 Web 表单上,控件 ID 全部被“ctl00$ContentBody$”前缀破坏。我在所有 INPUT 控件上添加了 runat="server",这就是更改 ID 的原因。现在 ID 已更改,Javascript(写得非常糟糕,我什至无法阅读,而且我对 JS 很有经验)完全损坏了。
那么,如何防止这些废话被渲染到 HTML 中呢?我希望能够以某种方式创建一个继承 HtmlGenericControl 的类(我没有使用 Web 控件,我只是在每个输入标记上添加了一个 runat="server"),并以某种方式覆盖将此“容器 id”粘贴在的逻辑ID 和 NAME 属性的开头。然后我可以使用 web.config 中的 tagMapping 进行全局更改。这可能吗?
目前还算小小的安慰,但这个“功能”将在 Asp.Net 4.0 中得到修复。您将获得可设置的 ClientID 属性。
除此之外,其他反应都很好。
使用
或者放入 JQuery 并使用 $("[id$='myId'])
或者,在您的输入标签上,不要放置runtime='server'。您应该能够通过 Form 成员检索值(就像在传统的 asp 中一样)
或者,跳过 Asp.Net WebForms 并跳至 Asp.Net MVC,这使您可以完全控制生成的 HTML 标记。你必须稍微改变一下做事的方式,但这可能不会让你那么沮丧。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)