ASPX验证控制器不显示消息

时间:2017-07-31 11:22:18

标签: c# asp.net aspx-user-control

所以这就是我所拥有的

protected void submitEmail_Click(object sender, EventArgs e)
{
    try
    {
        if (!Page.IsValid)
        {
            validationMsg.Visible = true;
            validationMsg.Text = "Please insert a valid email address.";
            return;
        }

        if (!IsValidEmail())
        {
            validationMsg.Visible = true;
            validationMsg.Text = "Please insert a valid email address.";
            return;
        }

        SaveData();
        validationMsg.Visible = true;
        validationMsg.Text = "Thank you for joining our beta community! We’ll send word as soon as our beta is out.";
    }
    catch (Exception ex)
    {

    }
}

.aspx

<%@ Control Language="C#"
            AutoEventWireup="true"
            CodeFile="BetaEmailUserForm.ascx.cs"
            Inherits="CMSWebParts_BullGuard_User_Forms_BetaEmailUserForm" %>

<div class="subscribe">
    <asp:TextBox ID="userEmail" runat="server"
                 CssClass="subscribe-input"></asp:TextBox>

    <asp:LinkButton ID="submitEmail" runat="server"
                    OnClick="submitEmail_Click"
                    CssClass="subscribe-submit button"
                    CausesValidation="true"
                    ValidationGroup="betaEmailGroup">
        <span style="font-size: 20px; color: #ffffff;padding: 26px;display:block;">✓</span>
    </asp:LinkButton>
</div>

<p class="thank">
     <asp:Literal ID="validationMsg" 
                  runat="server" 
                  Visible="false"></asp:Literal>
    <asp:RequiredFieldValidator ID="rfvEmail1new"
                                ControlToValidate="userEmail"
                                SetFocusOnError="true"
                                EnableClientScript="true"
                                ValidationGroup="betaEmailGroup"
                                runat="server"></asp:RequiredFieldValidator>   
    <asp:RegularExpressionValidator ID="revEmail1new"
                                    ControlToValidate="userEmail"
                                    ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
                                    SetFocusOnError="true"
                                    EnableClientScript="true"
                                    ValidationGroup="betaEmailGroup"
                                    runat="server"></asp:RegularExpressionValidator>
</p>

我想要的是这个。

案例1:我在输入字段中输入任何内容,第一个验证器执行操作,在.cs文件中我假设第一个条件应该失败,导致添加消息

案例2:我输入的电子邮件地址无效=&gt;与案例1相同的逻辑

案例3:输入一个好的电子邮件地址跳过2个检查

案例4:输入已注册的电子邮件地址==&gt;去第二检查条件。

问题是我没有显示2个验证器的消息。

第一种情况我没有输入任何我希望使用以下案例的数据

 if (!Page.IsValid)

没有发生。

第二种情况失败的是电子邮件地址不正确(例如asdasd @dadad)

也应该与页面无效的情况一致

if (!Page.IsValid)

我已尝试调试但不能调试第一和第二个测试用例。 只有输入有效的电子邮件地址,我才能调试。

有任何帮助吗?谢谢。

我认为有一些客户端验证,aspx控制器会在我不知情的情况下为我做的,有些js生成的文件?不知道

1 个答案:

答案 0 :(得分:0)

我希望问题出在&#34;!Page.IsValid&#34;。 请查看以下链接

https://msdn.microsoft.com/en-us/library/system.web.ui.page.isvalid(v=vs.110).aspx

How does Page.IsValid work?

有时需要添加&#34;的ErrorMessage =&#34;&#34; &#34;到验证标签。请检查一下。

我希望这会对你有帮助。

还有其他简单方法可以完成这项工作,你可以按照它们进行操作。