asp.net的问题是创建用户控件

时间:2009-08-15 07:39:54

标签: asp.net createuserwizard

我已经自定义了asp.net登录控件,它似乎可以很好地创建新帐户,但是如果我复制已注册的用户ID或输入已经使用过的电子邮件,则不会显示错误消息。这让我疯狂。该页面只刷新而不显示错误。

我已经按照MSDN网站上的指示包含但没有。 http://msdn.microsoft.com/en-us/library/ms178342.aspx

<asp:CreateUserWizard ErrorMessageStyle-BorderColor="Azure" ID="CreateUserWizard1" runat="server" ContinueDestinationPageUrl="~/home.aspx">

                        <WizardSteps>

                            <asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server">

                                <ContentTemplate>
                                    <asp:Literal ID="ErrorMessage" runat="server"></asp:Literal>


                                    <div class="fieldLine">
                                        <asp:Label ID="lblFirstName" runat="server" Text="First Name:" AssociatedControlID="tbxFirstName"></asp:Label>
                                        <asp:Label ID="lblLastName" runat="server" Text="Last Name:" AssociatedControlID="tbxLastName"></asp:Label>
                                    </div> 

                                    <div class="fieldLine">
                                        <asp:TextBox ID="tbxFirstName" runat="server"></asp:TextBox>
                                        <asp:TextBox ID="tbxLastName" runat="server"></asp:TextBox>
                                    </div>


                                    <asp:Label ID="lblEmail" runat="server" Text="Email:" AssociatedControlID="Email"></asp:Label>
                                    <asp:TextBox ID="Email" runat="server" CssClass="wideInput"></asp:TextBox><br />
                                    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" 
                                                                runat="server" 
                                                                CssClass="aspValidator"
                                                                Display="Dynamic"
                                                                ControlToValidate="Email"
                                                                ErrorMessage="Required"></asp:RequiredFieldValidator>
                                    <asp:RegularExpressionValidator ID="RegularExpressionValidator1" 
                                                                    runat="server" 
                                                                    Display="Dynamic"
                                                                    CssClass="aspValidator"
                                                                    ControlToValidate="Email"
                                                                    SetFocusOnError="true"
                                                                    ValidationExpression="^(?:[a-zA-Z0-9_'^&amp;/+-])+(?:\.(?:[a-zA-Z0-9_'^&amp;/+-])+)*@(?:(?:\[?(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))\.){3}(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\]?)|(?:[a-zA-Z0-9-]+\.)+(?:[a-zA-Z]){2,}\.?)$"
                                                                    ErrorMessage="Email address not valid"></asp:RegularExpressionValidator>

                                    <asp:Label ID="lblEmailConfirm" runat="server" Text="Confirm Email Address:" AssociatedControlID="tbxEmailConfirm"></asp:Label>
                                    <asp:TextBox ID="tbxEmailConfirm" runat="server" CssClass="wideInput"></asp:TextBox><br />
                                    <asp:RequiredFieldValidator ID="RequiredFieldValidator2" 
                                                                runat="server" 
                                                                CssClass="aspValidator"
                                                                Display="Dynamic"
                                                                ControlToValidate="tbxEmailConfirm"
                                                                ErrorMessage="Required"></asp:RequiredFieldValidator>
                                    <asp:RegularExpressionValidator ID="RegularExpressionValidator2" 
                                                                    runat="server" 
                                                                    Display="Dynamic"
                                                                    CssClass="aspValidator"
                                                                    ControlToValidate="tbxEmailConfirm"
                                                                    SetFocusOnError="true"
                                                                    ValidationExpression="^(?:[a-zA-Z0-9_'^&amp;/+-])+(?:\.(?:[a-zA-Z0-9_'^&amp;/+-])+)*@(?:(?:\[?(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))\.){3}(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\]?)|(?:[a-zA-Z0-9-]+\.)+(?:[a-zA-Z]){2,}\.?)$"
                                                                    ErrorMessage="Email address not valid"></asp:RegularExpressionValidator>
                                    <asp:CompareValidator ID="CompareValidator1" 
                                                          runat="server" 
                                                          Display="Dynamic"
                                                          SetFocusOnError="true"
                                                          CssClass="aspValidator"
                                                          ControlToCompare="Email"
                                                          ControlToValidate="tbxEmailConfirm"
                                                          ErrorMessage="Email address' do not match"></asp:CompareValidator>

                                    <asp:Label ID="lblUsername" runat="server" Text="Username:" AssociatedControlID="UserName"></asp:Label>
                                    <asp:TextBox ID="UserName" runat="server" MaxLength="12"></asp:TextBox><br />
                                    <asp:CustomValidator ID="CustomValidatorUserName" 
                                                         runat="server" 
                                                         Display="Dynamic"
                                                         SetFocusOnError="true"
                                                         CssClass="aspValidator"
                                                         ValidateEmptyText="true"
                                                         ControlToValidate="UserName"
                                                         ErrorMessage="Username can be between 6 and 12 characters."
                                                         ClientValidationFunction="ValidateLength"
                                                         OnServerValidate="ValidateUserName"></asp:CustomValidator>

                                    <div class="fieldLine">
                                        <asp:Label ID="lblPassword" runat="server" Text="Password:" AssociatedControlID="Password"></asp:Label> 
                                        <asp:Label ID="lblPasswordConfirm" runat="server" Text="Confirm Password:" AssociatedControlID="ConfirmPassword" CssClass="confirmPassword"></asp:Label> 
                                    </div>

                                    <div class="fieldLine">
                                        <asp:TextBox ID="Password" runat="server" TextMode="Password"></asp:TextBox>
                                        <asp:TextBox ID="ConfirmPassword" runat="server" TextMode="Password"></asp:TextBox><br />
                                        <asp:CustomValidator ID="CustomValidatorPassword" 
                                                         runat="server" 
                                                         Display="Dynamic"
                                                         SetFocusOnError="true"
                                                         CssClass="aspValidator"
                                                         ControlToValidate="Password"
                                                         ValidateEmptyText="true" 
                                                         ErrorMessage="Password can be between 6 and 12 characters"
                                                         ClientValidationFunction="ValidateLength"
                                                         OnServerValidate="ValidatePassword"></asp:CustomValidator>
                                        <asp:CustomValidator ID="CustomValidatorConfirmPassword" 
                                                         runat="server" 
                                                         Display="Dynamic"
                                                         SetFocusOnError="true"
                                                         CssClass="aspValidator"
                                                         ControlToValidate="ConfirmPassword"
                                                         ValidateEmptyText="true" 
                                                         ErrorMessage="Password can be between 6 and 12 characters"
                                                         ClientValidationFunction="ValidateLength"
                                                         OnServerValidate="ValidatePassword"></asp:CustomValidator>
                                          <asp:CompareValidator ID="CompareValidator2" 
                                                          runat="server" 
                                                          Enabled="false"
                                                          Display="Dynamic"
                                                          SetFocusOnError="true"
                                                          CssClass="aspValidator"
                                                          ControlToCompare="Password"
                                                          ControlToValidate="ConfirmPassword"
                                                          ErrorMessage="Passwords do not match"></asp:CompareValidator>  
                                    </div>

                                    <asp:Label ID="lblCaptch" runat="server" Text="Captcha:" AssociatedControlID="imgCaptcha"></asp:Label>
                                    <div class="borderBlue" style="width:200px;">
                                        <asp:Image ID="imgCaptcha" runat="server" ImageUrl="~/JpegImage.aspx" /><br />                                    
                                    </div>

                                    <asp:TextBox ID="tbxCaptcha" runat="server" CssClass="captchaText"></asp:TextBox>
                                    <asp:RequiredFieldValidator ControlToValidate="tbxCaptcha" 
                                                                CssClass="aspValidator" 
                                                                ID="RequiredFieldValidator3" 
                                                                runat="server" 
                                                                ErrorMessage="Required"></asp:RequiredFieldValidator>
                                    <asp:CustomValidator ID="CustomValidator1" ControlToValidate="tbxCaptcha"
                                                         runat="server" OnServerValidate="ValidateCaptcha" ErrorMessage="Captcha incorrect"></asp:CustomValidator>
                                </ContentTemplate>

                                <CustomNavigationTemplate>
                                    <div style="float:left;">
                                        <asp:Button ID="CreateUser" runat="server" Text="Register Now!" 
                                                    CausesValidation="true" CommandName="CreateUser" OnCommand="CreateUserClick" CssClass="registerButton" />
                                    </div>
                                </CustomNavigationTemplate>
                            </asp:CreateUserWizardStep>

                            <asp:CompleteWizardStep ID="CompleteWizardStep1" runat="server">
                                <ContentTemplate>
                                    <table border="0" style="font-size: 100%; font-family: Verdana" id="TABLE1" >
                                        <tr>
                                            <td align="center" colspan="2" style="font-weight: bold; color: white; background-color: #5d7b9d; height: 18px;">
                                                Complete</td>
                                        </tr>
                                        <tr>
                                            <td>
                                                Your account has been successfully created.<br />
                                            </td>
                                        </tr>
                                        <tr>
                                            <td align="right" colspan="2">
                                                <asp:Button ID="Button1" PostBackUrl="~/home.aspx" runat="server" Text="Button" />
                                            </td>
                                        </tr>
                                    </table>
                                </ContentTemplate>
                            </asp:CompleteWizardStep>
                        </WizardSteps>
                    </asp:CreateUserWizard>

3 个答案:

答案 0 :(得分:0)

在MSDN示例中,代码隐藏中的代码检查现有用户。您的应用中是否有类似的代码?

答案 1 :(得分:0)

找到解决方案。似乎CustomNavigationTemplate部分中的按钮需要一个'MoveNext'的命令参数,而按钮ID必须由StepNextButtonButton完成。我通过让控件在没有任何自定义的情况下自我渲染然后查看其属性来发现这一点。

希望这有助于某人。

答案 2 :(得分:0)

创建一个在asp.net中发送邮件的功能 &安培;使用try&amp; catch函数用于在用户控件中获取错误 如果发现任何错误,则错误会自动发送到您的ID

如果您使用gmail

,请使用此功能

//声明用于发送邮件的变量         string tomail =你的gmail id         string subject =在用户控件中找到的错误         string body =用户控件中的异常

    // send a mail by gmail account


    System.Net.Mail.MailMessage MyMailMessage =
        new System.Net.Mail.MailMessage("xyz.com", tomail,

主体,身体);         MyMailMessage.IsBodyHtml = false;

    //Proper Authentication Details need to be passed when sending email from gmail
    System.Net.NetworkCredential mailAuthentication = new
    System.Net.NetworkCredential("xyz@gmail.com", "password");
    //Smtp Mail server of Gmail is "smpt.gmail.com" and it uses port no. 587
    //For different server like yahoo this details changes and you can
    //get it from respective server.
    System.Net.Mail.SmtpClient mailClient = new System.Net.Mail.SmtpClient("smtp.gmail.com", 587);
    //Enable SSL

    mailClient.EnableSsl = true;

    mailClient.UseDefaultCredentials = false;

    mailClient.Credentials = mailAuthentication;

    try
    {

        mailClient.Send(MyMailMessage);
    }
    catch (System.Net.Mail.SmtpException ex)
    {
        Response.Write(ex.ToString());
    }
}