在ASP.NET MVC 5中,默認情況下,登錄和註冊設置附帶電子郵件和密碼。我想改爲使用用戶名和密碼。這裏發佈了一些類似的病例,但是跟着他們並沒有幫助。當我嘗試註冊時,出現錯誤消息「電子郵件不能爲空」。看起來電子郵件的設置仍然有效,不知道在哪裏。改變我對用戶的用戶名,而不是電子郵件做出如下:更改用戶從電子郵件登錄到用戶名
AccountViewModel
//Removed Email and added username for RegisterViewModel
public class RegisterViewModel
{
[Required]
[Display(Name = "User name")]
public string Username { get; set; }
}
的AccountController改變電子郵件的用戶名在註冊
public async Task<ActionResult> Register(RegisterViewModel model)
{
if (ModelState.IsValid)
{ //changed email to username
var user = new ApplicationUser { UserName = model.Username};
//var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
var result = await UserManager.CreateAsync(user, model.Password);
if (result.Succeeded)
{
await SignInManager.SignInAsync(user, isPersistent:false, rememberBrowser:false);
return RedirectToAction("Index", "Home");
}
AddErrors(result);
}
Register.cshtml
<div class="form-group">
@Html.LabelFor(m => m.Username, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.TextBoxFor(m => m.Username, new { @class = "form-control" })
</div>
</div>
在瞭解我失蹤的步驟後,我會做同樣的登錄。
跟蹤它在調試器中看到的假設錯誤來自哪裏。驗證通常至少有3個層次(例如View,Model,Entity)。 –
我對已更改的文件使用了斷點。什麼都沒有出現。 IT不是一個例外,而是顯示一個字符串,因此異常被捕獲到某處。確切的字符串是「電子郵件不能爲空或空」。試圖使用find進行搜索,該字符串不會顯示在公共文件上。我猜我得按檔案去檔案。 – kar
UserManager仍然在尋找一封電子郵件,因爲您評論它是有道理的。要求電子郵件註冊但不能登錄。 –