在ASP.NET MVC-5中,ViewModel可以用于处理登录功能。
首先,创建一个名为LoginViewModel的类,该类包含登录所需的属性,例如用户名和密码:
public class LoginViewModel
{
[Required]
[Display(Name = "用户名")]
public string UserName { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "密码")]
public string Password { get; set; }
}
然后,在登录页面的视图中使用该ViewModel:
@model LoginViewModel
@using (Html.BeginForm("Login", "Account", FormMethod.Post))
{
@Html.AntiForgeryToken()
@Html.LabelFor(m => m.UserName)
@Html.TextBoxFor(m => m.UserName, new { @class = "form-control" })
@Html.LabelFor(m => m.Password)
@Html.PasswordFor(m => m.Password, new { @class = "form-control" })
}
接下来,在控制器的登录操作中使用LoginViewModel:
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginViewModel model)
{
if (ModelState.IsValid)
{
// 验证用户名和密码
if (model.UserName == "admin" && model.Password == "admin123")
{
// 登录成功,执行相关操作,例如设置登录状态、跳转到其他页面等
return RedirectToAction("Index", "Home");
}
else
{
ModelState.AddModelError("", "用户名或密码不正确");
}
}
// 如果登录失败,返回登录页面,并显示验证错误消息
return View(model);
}
在登录操作中,通过验证LoginViewModel的属性来进行用户名和密码的验证。如果验证成功,可以执行登录成功后的操作,例如设置登录状态、跳转到其他页面等。如果验证失败,可以将验证错误消息添加到ModelState中,并返回登录页面以显示错误消息。
这样,就可以使用ViewModel来处理登录功能了。