C# Page.IsValid始终返回false
我在按钮上有正确的原因验证。我正在检查C# Page.IsValid始终返回false,c#,asp.net,C#,Asp.net,我在按钮上有正确的原因验证。我正在检查页面。c#code中的IsValid。但它总是返回假值?在检查其有效状态之前,您是否已调用?如果您的按钮具有CauseValidation=“true”并且您具有其他一些必需的控件,则该行为是预期的。尝试设置按钮和相关控件的属性() 我知道为时已晚,希望有人能从中受益 如果网页中有RequiredFieldValidator,则需要将ValidationGroup属性设置为每个RequiredValidator 然后在代码中你必须检查 Page.Valida
页面。c#code中的IsValid
。但它总是返回假值?在检查其有效状态之前,您是否已调用?如果您的按钮具有CauseValidation=“true”
并且您具有其他一些必需的控件,则该行为是预期的。尝试设置按钮和相关控件的属性() 我知道为时已晚,希望有人能从中受益
如果网页中有RequiredFieldValidator,则需要将ValidationGroup属性设置为每个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;
}
}
对于我来说,此问题发生在已注释掉的asp.net验证程序中。 e、 g
尽管有一个用HTML注释包装的验证程序,我的页面仍然由于注释的验证程序而未能通过验证
解决方案:添加验证摘要以确定问题。删除已注释的验证器以解决问题。否我没有调用Page.validate。能否提供一些代码@sashaeve,我需要使causevalidation为true。您必须在检查Page.isValid之前调用Page.Validate。我添加了一个带有验证组行为解释的链接。isValid()不是有效方法。只需使用Page.IsValid。
<!--
<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>
-->