三大块:
- LoginViewModel
- Login 视图
- Login 操作方法
ViewModel:
public class LoginViewModel{[Required][EmailAddress][Display(Name = "邮箱地址")]public string Email { get; set; }[Required][DataType(DataType.Password)][Display(Name = "密码")]public string Password { get; set; }[Display(Name = "记住我")]public bool RememberMe { get; set; }}
Login 视图:
@model LoginViewModel@{ViewBag.Title = "用户登录";}<h1>用户登录</h1><div class="row"><div class="col-md-12"><form method="post"><div asp-validation-summary="All" class="text-danger"></div><div class="form-group"><label asp-for="Email"></label><input asp-for="Email" class="form-control" /><span asp-validation-for="Email" class="text-danger"></span></div><div class="form-group"><label asp-for="Password"></label><input asp-for="Password" class="form-control" /><span asp-validation-for="Password" class="text-danger"></span></div><div class="form-group"><div class="custom-checkbox"><label asp-for="RememberMe"><input asp-for="RememberMe"/>@Html.DisplayNameFor(m => m.RememberMe)</label></div></div><button type="submit" class="btn btn-primary">登录</button></form></div></div>
Login 操作方法:
[HttpGet]public IActionResult Login(){return View();}[HttpPost]public async Task<IActionResult> Login(LoginViewModel model){if (ModelState.IsValid){var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, false);if (result.Succeeded){return RedirectToAction("Index", "Home");}ModelState.AddModelError(string.Empty, "登录失败,请重试");}return View(model);}
