Asp.net clientid在两台不同的计算机中创建的方式不同

Asp.net clientid在两台不同的计算机中创建的方式不同,asp.net,Asp.net,我在中继器中有一个usercontrol,它有一些自定义验证。我为OnItemDataBound中的每个文本框按钮对创建一个验证组。在本地环境中,验证分别针对每个控件进行。在我们的登台环境中,单击一个按钮验证所有文本框 看看生成的JS代码,我看到了一个不同。我不知道这是否重要,但可能是 登台: cphBody_bodyContent_rptFieldsSummary_ucFieldSummary_0_ucNewSubjectQuestion_0_vldNotHintText_0.clientva

我在中继器中有一个usercontrol,它有一些自定义验证。我为OnItemDataBound中的每个文本框按钮对创建一个验证组。在本地环境中,验证分别针对每个控件进行。在我们的登台环境中,单击一个按钮验证所有文本框

看看生成的JS代码,我看到了一个不同。我不知道这是否重要,但可能是

登台:

cphBody_bodyContent_rptFieldsSummary_ucFieldSummary_0_ucNewSubjectQuestion_0_vldNotHintText_0.clientvalidationfunction = "HintText_ClientValidate";
本地:

ctl00_ctl00_cphBody_bodyContent_rptFieldsSummary_ctl00_ucFieldSummary_ucNewSubjectQuestion_vldNotHintText.clientvalidationfunction = "HintText_ClientValidate";

这可能是问题所在吗?在任何情况下,如果有人知道这种差异存在的原因,我很想知道,即使这不是我问题的解决方案:)

如果您有任何其他代码通过ID引用这些元素,这可能会成为一个问题。显然,使用您提供的行,事件处理程序仍将被正确分配

如果您担心这会成为一个问题,请将所有控件的“”ClientIDMode“设置为“”Static“”,然后为它们分配一个ID。这将导致文本框/按钮始终具有相同的ID


请注意,这仅适用于ASP.NET控件,而不是标准的HTML控件。

是否检查了每台计算机中的web.config?在这两种情况下,clientdmode属性可能会有所不同。默认情况下,模式为AFAIK