即使控件被隐藏,ASP.NET中是否仍会触发验证?

即使控件被隐藏,ASP.NET中是否仍会触发验证?,asp.net,validation,Asp.net,Validation,我有一个使用ASP.NET验证的表单。我在aspx中使用一些内联C#来显示/隐藏某些控件,具体取决于用户的角色。我会使用Visible属性,但它们太多了,我决定使用内联C#来显示和隐藏(我知道,这不是最佳实践,但请耐心等待)。当我提交表单时(当某些字段被隐藏时),Page.IsValid总是设置为False,我遇到了一个问题 即使控件没有呈现在页面上,验证是否仍会触发?另外,如果不是这样,是否有一种有效的方法来分解Page.IsValid以找出是什么将其设置为False?验证程序仍将启动,您也需

我有一个使用ASP.NET验证的表单。我在aspx中使用一些内联C#来显示/隐藏某些控件,具体取决于用户的角色。我会使用Visible属性,但它们太多了,我决定使用内联C#来显示和隐藏(我知道,这不是最佳实践,但请耐心等待)。当我提交表单时(当某些字段被隐藏时),Page.IsValid总是设置为False,我遇到了一个问题


即使控件没有呈现在页面上,验证是否仍会触发?另外,如果不是这样,是否有一种有效的方法来分解Page.IsValid以找出是什么将其设置为False?

验证程序仍将启动,您也需要隐藏它们

如果将Visible设置为False,则该控件的验证将不会启动。发件人:

为什么不直接使用Visible=false 隐形验证器?在ASP.NET中 控件的Visible属性具有 非常强烈的含义:一个控制与 Visible=false将不会在 全部用于预渲染或渲染。作为 由于这一更强烈的含义, Visible=验证程序的false表示 这不仅没有显示出来 任何东西,它都不起作用 任何一个它不是经过评估的,不是吗 影响页面的有效性,并且不会放置 摘要中的错误


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

是的,如果验证程序隐藏在客户端上,则将触发验证程序

如果通过使用display=“none”或visibility=“hidden”CSS属性在客户端隐藏了验证器及其控件,那么验证器仍然会在客户端和服务器端启动


如果希望验证器不在客户端和服务器端进行评估/启动,则必须在代码隐藏中的验证器上设置以下属性之一:
Visible=“false”
Enabled=“false”
如果控件验证尝试验证的内容不可见,则控件验证不会启动。visible=“false”


但是,如果您在该控件上执行hidden=“true”,它仍然会对其进行验证,这样它就不会显示给用户,而是希望用户对其进行验证

你说的内联c#是什么意思?是否设置显示:无?我不太清楚你在做什么——显示某些htmlso你是说我需要在所有HTMLS上将Visible属性设置为false?是的,如果你在数据绑定上下文中,你可以将Visible绑定到属性。好的,谢谢。唯一的问题是,我会猜测,如果验证在幕后被触发,那么所需的字段验证器甚至会阻止表单提交(我这边的情况并非如此)。有什么想法吗?是的,这很奇怪,我只是用一个requiredfieldvalidator和一个不可见的文本框制作了一个测试页面,页面被提交,回邮后出现错误消息谢谢回复。这完全有道理。我是否需要在验证和实际控件本身上设置Visible属性?还是只是验证?我对此感到有点慌乱,因为我的页面正在进行回发,并且我有大约10个必需的字段验证器(隐藏)没有被解雇。如果您只是使用CSS隐藏HTML,它是否只触发自定义/服务器端验证?请告知。