即使控件被隐藏,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.

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...