[英]Page.IsValid always return false
我按钮上的原因验证是真的。 我正在检查c#代码中的Page.IsValid
。 但它总是返回虚假价值?
我知道为时已晚,希望有人会受益
如果您在网页中有Requiredfieldvalidators ,则需要将validataiongroup属性设置为每个RequiredValidator 。
然后在代码中你要检查
Page.Validate("validategroupname");
if(!Page.IsValid()){
// your code
}
这解决了问题
这是一个帮助我调试问题的代码片段:
foreach (BaseValidator validator in Page.Validators)
{
if (validator.Enabled && !validator.IsValid)
{
// Put a breakpoint here
string clientID = validator.ClientID;
}
}
在检查其有效状态之前,您是否调用了Page.Validate ?
如果您的按钮具有CauseValidation = "true"
并且您有其他所需的控件,则行为是预期的。 尝试设置CauseValidation = "false"
或检查按钮和关联控件的ValidationGroup
属性( 解释 )。
使用注释掉的asp.net验证程序发生了这个问题。 例如
<!--
<asp:label id="labName" runat="server" Text="Name"
AssociatedControlID="tbName"></asp:label> <asp:textbox id="tbName"
runat="server"></asp:textbox> <asp:requiredfieldvalidator
id="ReqFieldValID" runat="server" ControlToValidate="tbName"
ErrorMessage="Please enter your name"></asp:requiredfieldvalidator>
-->
尽管在HTML注释中包含了验证器,但由于注释的验证器,我的页面仍然无法通过验证。
解决方案:添加验证摘要以确定问题。 删除注释的验证程序以解决问题。
我知道这可能为时已晚:但你有一个隐藏的验证器吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.