即使控件被隐藏,ASP.NET中的验证仍然会激活吗?

前端之家收集整理的这篇文章主要介绍了即使控件被隐藏,ASP.NET中的验证仍然会激活吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个使用ASP.NET验证的表单.我在aspx中使用一些内联C#来显示/隐藏某些控件,具体取决于用户的角色.我会使用Visible属性,但是有很多这样的属性,我只是决定使用内联C#来显示和隐藏(我知道,不是最佳实践,但是请耐心等待一秒钟).我有一个问题,当我提交表单时(当某些字段被隐藏时),Page.IsValid总是设置为False.即使控件甚至没有在pag上呈现,验证仍会触发吗?此外,如果不是这种情况,是否有一种有效的方法来分解Page.IsValid以找出将其设置为False的内容?谢谢.

解决方法

如果将Visible设置为false,则不会触发该控件的验证.从 ASP.Net Validation in Depth开始:

Why not just use Visible=false to have
an invisible validator? In ASP.NET the
Visible property of a control has a
very strong meaning: a control with
Visible=false will not be processed at
all for pre-rendering or rendering. As
a result of this stronger meaning,
Visible=false for a validator means
that not only does not it not display
anything,it is does not function
either. It is not evaluated,does not
affect page validity,and does not put
errors in the summary.

如果您希望控件进行验证但将其隐藏在页面上,请使用CSS将display设置为none.

猜你在找的asp.Net相关文章