asp.net-mvc-4 - SimpleMembership - 将电子邮件添加到 UserProfile - System.Data.SqlClient.SqlException : Invalid column name "Email" error

标签 asp.net-mvc-4 simplemembership

我很确定我已经遵循了所有步骤,但似乎遗漏了一些东西。在 MVC4 应用程序中使用 simplemembership。将电子邮件添加到 UserProfile 表并在 Register 和 UserProfile 模型中,将其添加到 Register 方法,但仍然出现错误。这是一些代码:

楷模:

public class UserProfile
{
    public int UserId { get; set; }
    public string UserName { get; set; }
    public string Email { get; set; }
}

public class RegisterModel
{
    [Display(Name = "Email Address")]
    [StringLength(20)]
    // [Required]
    public string Email { get; set; }

    [Display(Name = "Date of Birth")]
    //   [Required]
    public DateTime DOB { get; set; }

    [Required]
    [System.Web.Mvc.Remote("VerifyUserExists", "Account", ErrorMessage="That Username is already taken.")]
    [Display(Name = "User name")]
    public string UserName { get; set; }

    [Required]
    [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
    [DataType(DataType.Password)]
    [Display(Name = "Password")]
    public string Password { get; set; }

    [DataType(DataType.Password)]
    [Display(Name = "Confirm password")]
    [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
    public string ConfirmPassword { get; set; }
}

Controller :
    public ActionResult Register(RegisterModel model)
    {
        if (ModelState.IsValid)
        {
            // Attempt to register the user
            try
            {
                WebSecurity.CreateUserAndAccount(model.UserName, model.Password, new { Email = model.Email });
                WebSecurity.Login(model.UserName, model.Password);

                return RedirectToAction("Index", "Home");
            }
            catch (MembershipCreateUserException e)
            {
                ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
            }


        }

我不想使用电子邮件地址作为登录名,只是想在注册步骤中获取它,以便我可以发送自动确认电子邮件。

我已经尝试过使用 EF 模型中包含的 UserProfile 表,并且没有区别。我已经确认数据库中的表有一个电子邮件列。

最佳答案

如果您使用默认连接,请通过单击查看 -> 服务器资源管理器打开数据库,然后展开 DefaultConnection。在表下,您将看到 UserProfile 表。首先将列添加到表中并更新数据库,然后将额外的字段添加到类中。

关于asp.net-mvc-4 - SimpleMembership - 将电子邮件添加到 UserProfile - System.Data.SqlClient.SqlException : Invalid column name "Email" error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16678391/

相关文章:

asp.net-mvc-4 - SimpleRole/SimpleMember - 添加用户到角色

c# - asp mvc 如何从我的根文件夹中提供图像/文件/视频?

javascript - ASP.NET 单选按钮选择隐藏/显示 div 部分

asp.net-mvc - 什么是 ASP.NET MVC 中的模型绑定(bind)?

mysql - 在 MVC 中使用外键值填充列表

asp.net-mvc-4 - MVC 4 SimpleMembership 使用带有 UserId Guid 的自定义模式

ASP.NET 登录不会在 Firefox 和 IE 中正确重定向刚刚登录的用户,但适用于 Chrome

SimpleMembership - 有人让它对 n 层友好吗?

c# - 如何在 MVC razor View 中创建禁用的文本框

authentication - ASP.Net MVC 4 简单成员资格指定架构