.net – 设置runat = server时输入名称和ID更改

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

为了验证,我在所有输入中运行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验证器,那么一切都应该没问题。您应该使用ASP.NET TextBox control而不是使用HTML输入:

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

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....