Asp.NET Webforms register.aspx验证

Asp.NET Webforms register.aspx验证,asp.net,validation,file-upload,webforms,Asp.net,Validation,File Upload,Webforms,我正在使用Visual Studio 2017开发一个定制网站。我已经包括了身份,因此提供了一些页面来注册或登录用户。我正在调整注册页面,以允许使用fileupload控件上载图片(我已经创建了一个配置文件表,这将保存我想要捕获的额外数据)。但是,当我执行此操作时,即使电子邮件文本框中有数据,也会在我提交时触发对电子邮件的验证。我想这可能与上传功能发生时重新加载页面的方式有关?我还想添加一个复选框,并在选中时显示其他字段,使用CheckedChanged事件设置我想要隐藏的控件的可见属性。我已经

我正在使用Visual Studio 2017开发一个定制网站。我已经包括了身份,因此提供了一些页面来注册或登录用户。我正在调整注册页面,以允许使用fileupload控件上载图片(我已经创建了一个配置文件表,这将保存我想要捕获的额外数据)。但是,当我执行此操作时,即使电子邮件文本框中有数据,也会在我提交时触发对电子邮件的验证。我想这可能与上传功能发生时重新加载页面的方式有关?我还想添加一个复选框,并在选中时显示其他字段,使用CheckedChanged事件设置我想要隐藏的控件的可见属性。我已经看到,如果我想这样做,我需要将AutoPostBack设置为true。 register.aspx中的代码

<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
    <h2><%: Title %>.</h2>
    <p class="text-danger">
        <asp:Literal runat="server" ID="ErrorMessage" />
    </p>

    <div class="form-horizontal">
        <h4>Create a new account</h4>
        <hr />
        <asp:ValidationSummary runat="server" CssClass="text-danger" />
        <div class="form-group">
            <asp:Label runat="server" AssociatedControlID="UserName" CssClass="col-md-2 control-label">User Name</asp:Label>
            <div class="col-md-10">
                <asp:TextBox runat="server" ID="UserName" CssClass="form-control" />
                <asp:RequiredFieldValidator runat="server" ControlToValidate="UserName"
                    CssClass="text-danger" ErrorMessage="The user name is required." />
            </div>
        </div>
        <div class="form-group">
            <asp:Label runat="server" AssociatedControlID="Email" CssClass="col-md-2 control-label">Email</asp:Label>
            <div class="col-md-10">
                <asp:TextBox runat="server" ID="Email" CssClass="form-control" TextMode="Email" />
                <asp:RequiredFieldValidator runat="server" ControlToValidate="Email"
                    CssClass="text-danger" ErrorMessage="The email field is required." />
            </div>
        </div>
        <div class="form-group">
            <asp:Label runat="server" AssociatedControlID="Password" CssClass="col-md-2 control-label">Password</asp:Label>
            <div class="col-md-10">
                <asp:TextBox runat="server" ID="Password" TextMode="Password" CssClass="form-control" />
                <asp:RequiredFieldValidator runat="server" ControlToValidate="Password"
                    CssClass="text-danger" ErrorMessage="The password field is required." />
            </div>
        </div>
        <div class="form-group">
            <asp:Label runat="server" AssociatedControlID="ConfirmPassword" CssClass="col-md-2 control-label">Confirm password</asp:Label>
            <div class="col-md-10">
                <asp:TextBox runat="server" ID="ConfirmPassword" TextMode="Password" CssClass="form-control" />
                <asp:RequiredFieldValidator runat="server" ControlToValidate="ConfirmPassword"
                    CssClass="text-danger" Display="Dynamic" ErrorMessage="The confirm password field is required." />
                <asp:CompareValidator runat="server" ControlToCompare="Password" ControlToValidate="ConfirmPassword"
                    CssClass="text-danger" Display="Dynamic" ErrorMessage="The password and confirmation password do not match." />
            </div>
        </div>
        <div class="form-group">
            <asp:Label runat="server" AssociatedControlID="UserPicture" CssClass="col-md-2 control-label">Upload your user picture</asp:Label>
            <div class="col-md-10">
                <asp:FileUpload runat="server" ID="UserPicture" CssClass="form-control" />
            </div>
        </div>

        <div class="form-group">
            <asp:Label runat="server" AssociatedControlID="userStatus" CssClass="col-md-2 control-label">Do you want to upload Artwork? If so check this box and once approved you will be able to do this.</asp:Label>
            <div class="col-md-10">
                <asp:CheckBox ID="userStatus" runat="server" CssClass="form-control" AutoPostBack="true" Checked=false OnCheckedChanged="userStatus_CheckedChanged" />
            </div>
        </div>
        <div class="form-group">
            <asp:Label runat="server" AssociatedControlID="ArtistIntro" CssClass="col-md-2 control-label" ID="lblInfo" Visible="True">Please enter information about yourself as an artist</asp:Label>
            <div class="col-md-10">
                <asp:TextBox runat="server" ID="ArtistIntro" CssClass="form-control" Visible="True" />
            </div>
        </div>
        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <asp:Button runat="server" OnClick="CreateUser_Click" Text="Register" CssClass="btn btn-default" />
                <asp:Label ID="lblError" runat="server"></asp:Label>
            </div>
        </div>
    </div>
</asp:Content>

.

创建新帐户
用户名 电子邮件 密码 确认密码 上传你的用户图片 你想上传艺术品吗?如果是,请勾选此框,一旦获得批准,您将能够执行此操作。 请输入您作为艺术家的信息
register.aspx.cs中的代码

using System;
using System.Linq;
using System.Web;
using System.Web.UI;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.Owin;
using Owin;
using UHFinal.Models;
using System.Data.SqlClient;

namespace UHFinal.Account
{
    public partial class Register : Page
    {
        protected void CreateUser_Click(object sender, EventArgs e)
        {
            var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();
            var signInManager = Context.GetOwinContext().Get<ApplicationSignInManager>();
            var user = new ApplicationUser() { UserName = UserName.Text };
            IdentityResult result = manager.Create(user, Password.Text);
            if (result.Succeeded)
            {

                //Insert a UserAccount record to save the additional details.
                //Also sets the userStatus. AP or UP, Artist Pending or User Pending

                string connStr = System.Configuration.ConfigurationManager.ConnectionStrings["defaultConnection"].ConnectionString;
                SqlConnection conn = new SqlConnection(connStr);
                SqlCommand insert = new SqlCommand("insert into userAccount(UserID, userStatus, UserPicture, ArtistIntro) " +
                    "values(@userId, @userStatus, @UserPicture, @UserIntro)", conn);
                insert.Parameters.AddWithValue("@userId", user.Id);
                if (userStatus.Checked == true) { 
                    insert.Parameters.AddWithValue("@userStatus", "AP");
                    }
                else
                {
                    insert.Parameters.AddWithValue("@userStatus", "UP");
                }
                insert.Parameters.AddWithValue("@UserPicture", "UserPics/" + UserPicture.FileName);
                insert.Parameters.AddWithValue("@UserIntro", ArtistIntro.Text);

                try
                {
                    conn.Open();
                    object returnObj = insert.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    lblError.Text = "Error: " + ex.Message;    
                }
                conn.Close();


                signInManager.SignIn(user, isPersistent: false, rememberBrowser: false);
                IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response);

                }

            else 
            {
                ErrorMessage.Text = result.Errors.FirstOrDefault();
            }
        }

        protected void userStatus_CheckedChanged(object sender, EventArgs e)
        {
            if (userStatus.Checked == true)
            {
                ArtistIntro.Visible = true;
                lblInfo.Visible = true;
            }
            else
            {
                ArtistIntro.Visible = false;
                lblInfo.Visible = false;
            }
        }
    }
}
使用系统;
使用System.Linq;
使用System.Web;
使用System.Web.UI;
使用Microsoft.AspNet.Identity;
使用Microsoft.AspNet.Identity.Owin;
使用Owin;
使用UHF模型;
使用System.Data.SqlClient;
名称空间:final.Account
{
公共部分类寄存器:第页
{
受保护的void CreateUser_单击(对象发送方,事件参数e)
{
var manager=Context.GetOwinContext().GetUserManager();
var signInManager=Context.GetOwinContext().Get();
var user=new ApplicationUser(){UserName=UserName.Text};
IdentityResult result=manager.Create(user、Password.Text);
if(result.successed)
{
//插入UserAccount记录以保存其他详细信息。
//还设置userStatus.AP或UP、艺术家挂起或用户挂起
字符串connStr=System.Configuration.ConfigurationManager.ConnectionString[“defaultConnection”].ConnectionString;
SqlConnection conn=新的SqlConnection(connStr);
SqlCommand insert=新的SqlCommand(“插入到用户帐户(UserID、userStatus、UserPicture、ArtistIntro)”+
“值(@userId、@userStatus、@UserPicture、@UserIntro)”,康涅狄格州;
insert.Parameters.AddWithValue(“@userId”,user.Id);
如果(userStatus.Checked==true){
insert.Parameters.AddWithValue(“@userStatus”,“AP”);
}
其他的
{
insert.Parameters.AddWithValue(“@userStatus”,“UP”);
}
insert.Parameters.AddWithValue(“@UserPicture”,“UserPics/”+UserPicture.FileName);
insert.Parameters.AddWithValue(“@UserIntro”,ArtistIntro.Text);
尝试
{
conn.Open();
object returnObj=insert.ExecuteNonQuery();
}
捕获(例外情况除外)
{
lblError.Text=“错误:”+ex.消息;
}
康涅狄格州关闭();
signInManager.SignIn(用户,isPersistent:false,rememberBrowser:false);
IdentityHelper.RedirectToReturnUrl(Request.QueryString[“ReturnUrl”],响应);
}
其他的
{
ErrorMessage.Text=result.Errors.FirstOrDefault();
}
}
受保护的无效用户状态\u CheckedChanged(对象发送方,事件参数e)
{
if(userStatus.Checked==true)
{
ArtistIntro.Visible=真;
lblInfo.Visible=true;
}
其他的
{
ArtistIntro.Visible=假;
lblInfo.Visible=false;
}
}
}
}

在创建新的应用程序用户时,我遗漏了电子邮件

var user = new ApplicationUser() { UserName = UserName.Text, Email = Email.Text };

请显示您的代码。对不起,大部分代码是由Visual Studio生成的。