gpt4 book ai didi

.net - 设置 runat=server 时输入名称和 ID 会发生变化

转载 作者:行者123 更新时间:2023-12-03 10:47:02 25 4
gpt4 key购买 nike

在我的表单中,我需要插入“文本”类型的不同输入。输入必须是带有名称和 ID 的 html 控件。因为我将此表格发送到外部网址。

对于验证,我在所有输入中执行 runat=server,然后我可以使用 requiredfieldvalidator。

但问题是当我在访问页面后查看源代码时,名称和 ID 都已更改。
例如

<input id="first_name" class="formright" type="text" name="first_name" runat="server" />

更改为
<input name="ctl00$cphContent$first_name" type="text" id="ctl00_cphContent_first_name" class="formright">

我必须使用 html 控件,因为外部 postbackurl 查看 name 和 id 值来查找控件。所以我不能使用asp控件。这是因为我使用了带有 runat=server 的 html 控件

我感谢任何帮助

最佳答案

这是因为您使用的是 MasterPages。

内容页中包含的控件采用基于母版页层次结构的动态 ID,以避免 ID 重复。

如果需要在客户端脚本中引用控件 ID 和名称,可以使用 <%= first_name.ClientID %> .

如果您使用 .NET4,您可以使用 ClientIDMode="Static" 使生成的 ID 保持一致,尽管这会带来自己的 ID 冲突警告,例如,在页面上使用同一用户控件的多个实例时。 Rick Strahl 概述了那些 here .

但是,如果您使用的是 ASP.NET 验证器,那么一切都应该没问题。而不是使用 HTML input你应该使用 ASP.NET TextBox control :

<asp:TextBox id="first_name" runat="server" CssClass="formright" />

关于.net - 设置 runat=server 时输入名称和 ID 会发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5792290/

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