MVC4向用户注册额外的详细信息

时间:2014-04-04 12:00:22

标签: asp.net-mvc asp.net-mvc-4

我是MVC的初学者。 我想要的是,用户将拥有一个位置。 我希望将所有位置保存在一个单独的表中。

我提出的模型是:

位置模型:

public class Location
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int LocationId { get; set; }
    public string Address { get; set; }
    public string City { get; set; }
    public string State { get; set; }
    public string PostalCode { get; set; }
}

userprofile型号:

 public class UserProfile
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int UserId { get; set; }
    public string UserName { get; set; }
    public string Name { get; set; }

    public virtual Location location { get; set; }

}

注册模型:

 public class RegisterModel
{
//Attributes for UserName , password and ConfirmPassword
    public string Name { get; set; }

    public virtual Location Location { get; set; }
}

注册控制器:

 public ActionResult Register(RegisterModel model)
    {
        if (ModelState.IsValid)
        {
            // Attempt to register the user
            try
            {

                WebSecurity.CreateUserAndAccount(model.UserName, model.Password, propertyValues: new { Location = new Location () , Name = model.Name });
                WebSecurity.Login(model.UserName, model.Password);
                return RedirectToAction("Index", "Home");
            }
            catch (MembershipCreateUserException e)
            {
                ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
            }
        }

        // If we got this far, something failed, redisplay form
        return View(model);
    }

现在当我尝试注册时,

错误:对象类型HireCar2.Models.Location与已知的托管提供程序本机类型之间不存在映射。

从中午开始,我一直在尝试这个。 我能否知道上述代码中的错误。

0 个答案:

没有答案