首先建立一个MVC的项目,空的就行。
再创建一个Model模型。在Models目录下面。
public class User {
//用户信息 public string LoginName { get; set; } public string Password { get; set; } public string UserName { get; set; } }
//用户登陆 public class UserManager { public static bool Validate(string loginName, string password) { return String.Equals(loginName, "zhang", StringComparison.Ordinal) && String.Equals(password, "password", StringComparison.Ordinal); } public static User GetUserByLoginName(string loginName) { return new User() { LoginName = "zhang", Password = "password", UserName = "张三" }; } }
好了,模型层搞定了,然后就是Controller。在Controller目录下创建一个AccoutController的控制器,Index是默认方法,我们再创建一个Login方法,用户接受用户登陆时提交的请求。
public ActionResult Login() { //得到用户信息 string loginName = Request.Form["loginName"]; string password = Request.Form["password"]; //验证 if (Models.UserManager.Validate(loginName, password)) { //保存 Session["CurrentUser"] = UserManager.GetUserByLoginName(loginName); //登陆成功 return RedirectToAction("Success"); } //登陆失败,记录用户名,用户不用重新输入 ViewData["LoginName"] = loginName; //错误提示 ViewData["ReturnMessage"] = "用户名或者密码错误"; //跳转登陆页面 return View("Index"); }
Controller完成了,下面是View了
我们使用Index视图作为登陆页面,一个Success页面作为登陆成功的页面。
这是Index页面。
1 @model MvcApplication6.Models.User 2 @{ 3 ViewBag.Title = "Index"; 4 } 5 <h2> 6 Index</h2> 7 @using (Html.BeginForm("Login", "Account")) 8 { 9 <div> 10 @Html.LabelFor(m => m.UserName) 11 @Html.TextBox("loginName", ViewData["loginName"]) 12 @Html.LabelFor(m => m.Password) 13 @Html.Password("password") 14 <div> 15 <input type="submit" value="登陆" /> 16 </div> 17 <div> 18 @ViewData["ReturnMessage"] 19 </div> 20 </div> 21 }
第7行,Html.BeginForm("Login", "Account"),表明表单Form是提交到AccountController的Login方法哈,也就是上面的方法。
第11行,ViewData["loginName"]参数设置文本框的默认值,如果用户输入了错误的密码,返回的时候,可以自动填上用户名。
再看一下Success视图的代码
@{ ViewBag.Title = "Success"; } <h2> Success</h2> <div> @{ MvcApplication6.Models.User user = Session["CurrentUser"] as MvcApplication6.Models.User; } 您好,欢迎您:@user.UserName 您的登陆名是:@user.LoginName </div>
登陆成功以后,用户信息保存在Session中,表明当前用户已经登陆,在这里取出用户信息,并显示出来。
运行过程,在地址栏输入localhost:xxxx/Account,跳转到登陆页面
输入用户名和密码
跳转到Success视图