ASP.NET MVC5网站开发之用户资料的修改和删除3(七)

2019-05-22 10:45:45丽君

这次主要实现管理后台界面用户资料的修改和删除,修改用户资料和角色是经常用到的功能,但删除用户的情况比较少,为了功能的完整性还是坐上了。主要用到两个action “Modify”和“Delete”。

一、用户资料修改(Modify)

此功能分两个部分:

public ActionResult Modify(int id) 用于显示用户信息

[httppost]

public ActionResult Modify(FormCollection form)用户就收前台传来的信息并修改

1、显示用户信息

/// <summary>
  /// 修改用户信息
  /// </summary>
  /// <param name="id">用户主键</param>
  /// <returns>分部视图</returns>
  public ActionResult Modify(int id)
  {
   //角色列表
   var _roles = new RoleManager().FindList();
   List<SelectListItem> _listItems = new List<SelectListItem>(_roles.Count());
   foreach (var _role in _roles)
   {
    _listItems.Add(new SelectListItem() { Text = _role.Name, Value = _role.RoleID.ToString() });
   }
   ViewBag.Roles = _listItems;
   //角色列表结束
   return PartialView(userManager.Find(id));
  }

此action有一个参数id,接收传入的用户ID,在action中查询角色信息,并利用viewBage传递到视图,并通过return PartialView(userManager.Find(id))向视图传递用户模型返回分部视图。

视图代码如下:

@model Ninesky.Core.User

@using (Html.BeginForm())
{
 @Html.AntiForgeryToken()

 <div class="form-horizontal">
  @Html.ValidationSummary(true, "", new { @class = "text-danger" })
  @Html.HiddenFor(model => model.UserID)

  <div class="form-group">
   @Html.LabelFor(model => model.RoleID, htmlAttributes: new { @class = "control-label col-md-2" })
   <div class="col-md-10">
    @Html.DropDownListFor(model => model.RoleID, (IEnumerable<SelectListItem>)ViewBag.Roles, new { @class = "form-control" })
    @Html.ValidationMessageFor(model => model.RoleID, "", new { @class = "text-danger" })
   </div>
  </div>

  <div class="form-group">
   @Html.LabelFor(model => model.Username, htmlAttributes: new { @class = "control-label col-md-2" })
   <div class="col-md-10">
    @Html.EditorFor(model => model.Username, new { htmlAttributes = new { @class = "form-control", disabled = "disabled" } })
    @Html.ValidationMessageFor(model => model.Username, "", new { @class = "text-danger" })
   </div>
  </div>

  <div class="form-group">
   @Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-2" })
   <div class="col-md-10">
    @Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })
    @Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" })
   </div>
  </div>

  <div class="form-group">
   @Html.LabelFor(model => model.Sex, htmlAttributes: new { @class = "control-label col-md-2" })
   <div class="col-md-10">
    @Html.RadioButtonFor(model => model.Sex, 1) 男
    @Html.RadioButtonFor(model => model.Sex, 0) 女
    @Html.RadioButtonFor(model => model.Sex, 2) 保密
    @Html.ValidationMessageFor(model => model.Sex, "", new { @class = "text-danger" })
   </div>
  </div>

  <div class="form-group">
   @Html.LabelFor(model => model.Password, htmlAttributes: new { @class = "control-label col-md-2" })
   <div class="col-md-10">
    @Html.EditorFor(model => model.Password, new { htmlAttributes = new { @class = "form-control" } })
    @Html.ValidationMessageFor(model => model.Password, "", new { @class = "text-danger" })
   </div>
  </div>

  <div class="form-group">
   @Html.LabelFor(model => model.Email, htmlAttributes: new { @class = "control-label col-md-2" })
   <div class="col-md-10">
    @Html.EditorFor(model => model.Email, new { htmlAttributes = new { @class = "form-control" } })
    @Html.ValidationMessageFor(model => model.Email, "", new { @class = "text-danger" })
   </div>
  </div>

  <div class="form-group">
   @Html.LabelFor(model => model.LastLoginTime, htmlAttributes: new { @class = "control-label col-md-2" })
   <div class="col-md-10">
    @Html.EditorFor(model => model.LastLoginTime, new { htmlAttributes = new { @class = "form-control", disabled = "disabled" } })
    @Html.ValidationMessageFor(model => model.LastLoginTime, "", new { @class = "text-danger" })
   </div>
  </div>

  <div class="form-group">
   @Html.LabelFor(model => model.LastLoginIP, htmlAttributes: new { @class = "control-label col-md-2" })
   <div class="col-md-10">
    @Html.EditorFor(model => model.LastLoginIP, new { htmlAttributes = new { @class = "form-control", disabled = "disabled" } })
    @Html.ValidationMessageFor(model => model.LastLoginIP, "", new { @class = "text-danger" })
   </div>
  </div>

  <div class="form-group">
   @Html.LabelFor(model => model.RegTime, htmlAttributes: new { @class = "control-label col-md-2" })
   <div class="col-md-10">
    @Html.EditorFor(model => model.RegTime, new { htmlAttributes = new { @class = "form-control", disabled = "disabled" } })
    @Html.ValidationMessageFor(model => model.RegTime, "", new { @class = "text-danger" })
   </div>
  </div>

 </div>
}