C# · 12月 30, 2021

c# – 验证器和ClientIDMode问题(ASP.NET)

ASP.NET 4.0引入了属性“ClientIDMode”,它允许用户指定html元素的id在输出html中的呈现方式.

我的项目当前设置为“静态”(最短/不包含层次结构ID)

当使用任何验证器(requiredFieldValidator,RegularExpressionValidator …),除非显式验证的控件具有属性ClientIDMode:AutoID我得到错误:

Input parameter ‘controlId’ cannot be
an empty string.

这是预期的行为吗?

编辑:使用错误消息愚弄,它希望我在验证器上放置一个id,我显然不会做(除非我需要引用它).

由于这个原因,它应该失败,似乎仍然奇怪.

解决方法 我以一个稍微不同的方式碰到这个:如果我的用户控件有ClientIDMode =“Static”,我收到了控件中存在的验证器的错误(他们并不都有ID).

一种解决方法是在违规的用户控制上切换ClientIDModes.希望这可以帮助!