一用戶
1.1用戶注冊
1.2用戶登錄
1.3修改密碼
修改密碼會用到一個UserChangePassword 模型類,先添加UserChangePassword類
/// <summary> /// 用戶修改密碼模型 /// </summary> [NotMapped] public class UserChangePassword { /// <summary> /// 原密碼 /// </summary> [Display(Name = "原密碼")] [Required(ErrorMessage = "×")] [StringLength(20, MinimumLength = 6, ErrorMessage = "×")] [DataType(DataType.Password)] public string Password { get; set; } /// <summary> /// 新密碼 /// </summary> [Display(Name = "新密碼", Description = "6-20個字符。")] [Required(ErrorMessage = "×")] [StringLength(20, MinimumLength = 6, ErrorMessage = "×")] [DataType(DataType.Password)] public string NewPassword { get; set; } /// <summary> /// 確認密碼 /// </summary> [Display(Name = "確認密碼", Description = "再次輸入密碼。")] [Compare("NewPassword", ErrorMessage = "×")] [DataType(DataType.Password)] public string ConfirmPassword { get; set; } }
用到了數據庫的更新,先打開UserRepository.cs 修改Update函數
/// <summary> /// 更新用戶信息 /// </summary> /// <param name="user"></param> /// <returns></returns> public override bool Update(User user) { dbContext.Users.Attach(user); dbContext.Entry<User>(user).State = System.Data.EntityState.Modified; if (dbContext.SaveChanges() > 0) return true; else return false; }
在修改密碼時需要查出用戶信息并更新,需要添加Find(string UserName) 函數
/// <summary> /// 查找用戶 /// </summary> /// <param name="UserName">用戶名</param> /// <returns></returns> public User Find(string UserName) { return dbContext.Users.SingleOrDefault(u => u.UserName == UserName); }
好了打開UserController,添加ChangePassword Action
/// <summary> /// 修改密碼 /// </summary> /// <returns></returns> [UserAuthorize] public ActionResult ChangePassword() { return View(); } [HttpPost] [UserAuthorize] public ActionResult ChangePassword() { return View(); }
添加強類型(UserChangePassword)視圖,在視圖中添加三個文本框,修改后的視圖代碼
@model Ninesky.Models.UserChangePassword@{ ViewBag.Title = "修改密碼"; Layout = "~/Views/Shared/_Layout.cshtml";}<div class="banner"> <img src="~/Skins/Default/Images/banner.jpg" /></div>@using (Html.BeginForm()){ @Html.ValidationSummary(true) <div class="form"> <dl> <dt>修改密碼</dt> <dd> <div class="label">@Html.LabelFor(model => model.Password):</div> <div class="ctrl">@Html.PasswordFor(model => model.Password) @Html.ValidationMessageFor(model => model.Password) @Html.DisplayDescriptionFor(model => model.Password) </div> </dd> <dd> <div class="label">@Html.LabelFor(model => model.NewPassword):</div> <div class="ctrl">@Html.PasswordFor(model => model.NewPassword) @Html.ValidationMessageFor(model => model.NewPassword) @Html.DisplayDescriptionFor(model => model.NewPassword) </div> </dd> <dd> <div class="label">@Html.LabelFor(model => model.ConfirmPassword):</div> <div class="ctrl">@Html.PasswordFor(model => model.ConfirmPassword) @Html.ValidationMessageFor(model => model.ConfirmPassword) @Html.DisplayDescriptionFor(model => model.ConfirmPassword) </div> </dd> <dd> <div class="label"></div> <div class="ctrl"> <input type="submit" value="修改密碼" />@Html.ValidationMessage("Message") </div> </dd> </dl> <div class="clear"></div> </div>}@section Scripts { @Scripts.Render("~/bundles/jqueryval")}
|
新聞熱點
疑難解答
圖片精選