gpt4 book ai didi

asp.net - 从呈现的控件 ID 中删除 ctl00$ContentBody$

转载 作者:行者123 更新时间:2023-12-04 08:22:57 26 4
gpt4 key购买 nike

我对以前只是纯 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 属性。

除此之外,其他 react 都很好。
使用 <%= control.ClientID %>

或投入 JQuery 并使用 $("[id$='myId'])

或者,在您的输入标签上,不要放置 runtime='server'。您应该能够通过 Form 成员检索值(就像在传统的 asp 中一样)

或者,跳过 Asp.Net WebForms 并跳到 Asp.Net MVC,它使您可以完全控制生成的 HTML 标记。你必须更多地改变你做事的方式,但这对你来说可能不那么令人沮丧。

关于asp.net - 从呈现的控件 ID 中删除 ctl00$ContentBody$,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/827723/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com