2017-08-21 42 views
0

我正在寫一個.Net核心項目,我試圖實現一個用戶註冊過程。我在Visual Studio 2017中使用了由Microsoft提供的「基本」模板。註冊一個用戶到.Net核心項目

我已經陷入了用戶註冊的問題。我已經創建與我需要完成註冊的信息的相當可觀的形式:

RegisterViewModel:

public class RegisterViewModel 
{ 
    public string Email { get; set; } 
    public string Password { get; set; } 
    public string ConfirmPassword { get; set; } 
    public bool Admin { get; set; } 
    public bool Manager { get; set; } 
    public int CustomerID { get; set; } 
    public string First_Name { get; set; } 
    public string Last_Name { get; set; } 
    public string Mobile { get; set; } 
    public DateTime? Date_Of_Birth { get; set; } 
    public string Gender { get; set; } 
    public string Status { get; set; } 

    public Customer Customer { get; set; } 
} 

我已經離開了一些從上述不重要線,因爲這是不的一部分我的問題。顯示我的表單的部分按預期工作,但當我嘗試運行我的[HttpPost]部分時,我偶然發現問題。

public async Task<IActionResult> Register(RegisterViewModel model, string returnUrl = null) 
{ 
    ViewData["ReturnUrl"] = returnUrl; 
    if (ModelState.IsValid) 
    { 
     var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; 
     var result = await _userManager.CreateAsync(user, model.Password); 

     if (result.Succeeded) 
     { 
      //do something else here if user was created. 
     } 
    } 
} 

我的數據庫是一個關係型數據庫(有外鍵),這意味着,當我嘗試添加User通過這個過程,並且用戶不具有CustomerID(增加或沒有設置)的「用戶」索引的顯示不起作用(中斷)。

enter image description here

在用戶上方的寄存器代碼在我的數據庫中創建但是,沒有一個從我的形式填充字段是輸入到我的數據庫。所有客戶ID(這是一個外鍵)中最糟糕的是沒有被插入,即使它駐留在模型中。

如何從這個寄存器方法傳遞我需要的這些變量?

回答

0

我想通了。

看來,Visual Studio是如此友好,以提供我需要修改的ApplicationUser.cs類。

下面一行在我的代碼中發現上面貼:

var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; 

我發現ApplicationUser類,並修改它包含我的模型:

public class ApplicationUser : IdentityUser 
{ 
    public int CustomerID { get; internal set; } 
    public string FirstName { get; internal set; } 
    public string LastName { get; internal set; } 
    public string FullName { get; internal set; } 
    public string Gender { get; internal set; } 
    public string CName { get; internal set; } 
    public DateTime CDate { get; internal set; } 
    public string MobileNumber { get; internal set; } 
    public DateTime? DateOfBirth { get; internal set; } 
    public string Status { get; internal set; } 
    public DateTime StartDate { get; internal set; } 
    public DateTime EndDate { get; internal set; } 
    public string Contact1 { get; internal set; } 
    public string Contact2 { get; internal set; } 
} 

希望這可以幫助其他人在那裏!

相關問題