为什么ASP在输入元素上插入文本来命名属性?

时间:2014-01-30 17:22:43

标签: html asp.net validation

所以我正在通过在asp.net中验证我的表单,我注意到渲染的表单输入元素正在将“name”属性从name="firstName"更改为name="ctl00$ContentPlaceHolder1$txtFN"

它似乎抓住了输入元素的id以及其他一些我不能完全理解的文本。

供参考:

这是渲染元素 -

<input name="ctl00$ContentPlaceHolder1$txtEmail" type="text" id="ContentPlaceHolder1_txtEmail" class="reqT"> 

这就是我最初设置的内容 -

<asp:TextBox ID="txtFN" class="reqT" runat="server" name="firstName"></asp:TextBox>   

有人能够澄清: - 这个插入的意义 - 它是否可以改变,如果是这样,它有什么样的影响

谢谢!

1 个答案:

答案 0 :(得分:3)

ASP.NET这样做是为了确保输入元素上的完全唯一名称。您可以将ClientIDMode更改为Static

来停用它

Scott Gu在这里解释了几种方法:http://weblogs.asp.net/scottgu/archive/2010/03/30/cleaner-html-markup-with-asp-net-4-web-forms-client-ids-vs-2010-and-net-4-0-series.aspx

我个人认为web.config选项最简单:

<system.web>
    ...
    <pages clientIDMode="Static" />
    ...
</system.web>