亚游,  有人将中兴通讯的成功首先归于中国本土的崛起。的确,中国通信正在成为全球最大最具增长潜力的。但是,中兴通讯并没有完全满足于国内的发展,相反早在上个世纪90年代中期,在国际通信巨头纷纷抢滩中国的同时,中兴通讯就开始了进军海外的征程。

  《琉球国全图》中显示,琉球三省和附属的36个岛屿都是黄色的标识,而当时的中国广东、福建、浙江、南京,一律都是使用粉色标识的,钓鱼台、黄尾山、赤尾屿等也都是用粉色的标识,“这就说明了,当时的钓鱼岛就是属于我们中国的!”李海东说。加盟店排行榜 尼康随着D200推出一枚大变焦镜头:AF-S DX VR Zoom-Nikkor 18-200mm f/3.5-5.6G IF-ED,之前只有腾龙、适马有同规格的镜头,不过比起它们,尼康显然要有号召力得多:超声波马达、ED镜片、非球面镜片、内对焦,还有就是VR防抖动技术。

发布于 2018-03-24 15:26:23 | 142 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的精品教程,程序狗速度看过来!

ASP.NET

ASP.NET 是.NET FrameWork的一部分,是一项微软公司的技术,是一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术,它可以在通过HTTP请求文档时再在Web服务器上动态创建它们。 指 Active Server Pages(动态服务器页面) ,运行于 IIS(Internet Information Server 服务,是Windows开发的Web服务器)之中的程序 。


这篇文章主要为大家详细介绍了ASP.NET MVC5网站开发之用户资料的修改和删除,感兴趣的小伙伴们可以参考一下

这次主要实现管理后台界面用户资料的修改和删除,修改用户资料和角色是经常用到的功能,但删除用户的情况比较少,为了功能的完整性还是坐上了。主要用到两个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>
}

2、修改用户资料的后台处理


[HttpPost]
  [ValidateAntiForgeryToken]
  public ActionResult Modify(int id,FormCollection form)
  {
   Response _resp = new Auxiliary.Response();
   var _user = userManager.Find(id);
   if (TryUpdateModel(_user, new string[] { "RoleID", "Name", "Sex", "Email" }))
   {
    if (_user == null)
    {
     _resp.Code = 0;
     _resp.Message = "用户不存在,可能已被删除,请刷新后重试";
    }
    else
    {
     if (_user.Password != form["Password"].ToString()) _user.Password = Security.SHA256(form["Password"].ToString());
     _resp = userManager.Update(_user);
    }
   }
   else
   {
    _resp.Code = 0;
    _resp.Message = General.GetModelErrorString(ModelState);
   }
   return Json(_resp);
  }

此方法有两个参数id 和FormCollection form,不用User直接做模型的原因是因为user会把前台所有数据都接收过来,这里我并不想允许修改用户名,所以在方法中使用TryUpdateModel绑定允许用户修改的属性。TryUpdateModel在绑定失败时同样会在在ModelState中记录错误,可以利用自定义方法GetModelErrorString获取到错误信息并反馈给视图。

2、前台显示和处理

打开Index视图找到表格初始化方法,格式化列“Username”使其显示一个连接,代码红线部分。

使其看起来这个样子,当用户点击连接的时候可以显示修改对话框

弹出窗口和发送到服务器的js代码写到表格的onLoadSuccess方法里


onLoadSuccess: function () {

     /修改
     $("a[data-method='Modify']").click(function () {
      var id = $(this).attr("data-value");
      var modifyDialog = new BootstrapDialog({
       title: "<span class='glyphicon glyphicon-user'></span>修改用户",
       message: function (dialog) {
        var $message = $('<div></div>');
        var pageToLoad = dialog.getData('pageToLoad');
        $message.load(pageToLoad);

        return $message;
       },
       data: {
        'pageToLoad': '@Url.Action("Modify")/' + id
       },
       buttons: [{
        icon: "glyphicon glyphicon-plus",
        label: "保存",
        action: function (dialogItself) {
         $.post($("form").attr("action"), $("form").serializeArray(), function (data) {
          if (data.Code == 1) {
           BootstrapDialog.show({
            message: data.Message,
            buttons: [{
             icon: "glyphicon glyphicon-ok",
             label: "确定",
             action: function (dialogItself) {
              $table.bootstrapTable("refresh");
              dialogItself.close();
              modifyDialog.close();
             }
            }]

           });
          }
          else BootstrapDialog.alert(data.Message);
         }, "json");
         $("form").validate();
        }
       }, {
        icon: "glyphicon glyphicon-remove",
        label: "关闭",
        action: function (dialogItself) {
         dialogItself.close();
        }
       }]
      });
      modifyDialog.open();
     });
     /修改结束
}

显示效果如下图

二、删除用户

UserController中添加删除方法


//<summary>
  //删除
  //</summary>
  //<param name="id">用户ID</param>
  //<returns></returns>
  [HttpPost]
  public ActionResult Delete(int id)
  {
   return Json(userManager.Delete(id));
  }

打开Index视图找到表格初始化方法,添加“操作”列格式化列使其显示一个删除按钮,代码红框部分。

前台显示效果

然后在表格的onLoadSuccess方法里刚写的修改用户信息的js代码后面写删除用户的js代码


/修改结束

     /删除按钮
     $("a[data-method='Delete']").click(function () {
      var id = $(this).attr("data-value");
      BootstrapDialog.confirm("你确定要删除" + $(this).parent().parent().find("td").eq(3).text() + "吗?\n 建议尽可能不要删除用户。", function (result) {
       if (result) {
        $.post("@Url.Action("Delete", "User")", { id: id }, function (data) {
         if (data.Code == 1) {
          BootstrapDialog.show({
           message: "删除用户成功",
           buttons: [{
            icon: "glyphicon glyphicon-ok",
            label: "确定",
            action: function (dialogItself) {
             $table.bootstrapTable("refresh");
             dialogItself.close();
            }
           }]

          });
         }
         else BootstrapDialog.alert(data.Message);
        }, "json");
       }
      });
     });
     /删除按钮结束
    }
   });
   /表格结束

前台显示效果

==========================================

代码下载请见亚游/www0b0acnblogs0b0acom/mzwhj/p/5729848.html

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持PHPERZ。



相关阅读 :
ASP.NET MVC5网站开发之用户资料的修改和删除3(七)
ASP.NET MVC5网站开发之用户角色的后台管理1(七)
ASP.NET MVC5网站开发之用户添加和浏览2(七)
ASP.NET MVC5 网站开发框架模型、数据存储、业务逻辑(三)
ASP.NET MVC5网站开发之添加\删除\重置密码\修改密码\列表浏览管理员篇2(六)
ASP.NET MVC5网站开发之登录、验证和注销管理员篇1(六)
ASP.NET MVC5网站开发之展示层架构(五)
ASP.NET MVC5网站开发之业务逻辑层的架构和基本功能 (四)
ASP.NET MVC5网站开发之实现数据存储层功能(三)
ASP.NET MVC5网站开发之总体概述(一)
ASP.NET MVC5网站开发之网站设置(九)
ASP.NET MVC5网站开发用户修改资料和密码(六)
最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 亚游 All Rights Reserved   冀ICP备14009818号  亚游  广告服务
亚马逊修复Echo智能音箱失常发笑问题:更改语音指令 鸿茅药酒高管陪同参与抓捕 吃饭全由鸿茅公司买单 美参众议院和白宫互掐:网络中立法案该不该保留 医生含泪写下值班日记 家里有小孩子都该认真看看 脸书股价暴跌 扎克伯格财富榜排位下滑 货币宽松时代近尾声之际 全球财政政策开始唱主角 曼城崛起都要先追女神瓜帅!大巴黎你学到了吗 全国人大代表:5G发展应更注重惠及老人及困难群体 天津独流25名造假者获刑:曾每天流出数千件假调料 林良铭首发助攻队友破门 阿尔梅里亚B队4球大胜 中超俱乐部身价:上港居首超一方 权健第3恒大第5 韩媒:来韩中国游客骤减 乐天营业利润暴跌99%
大马警方夜查纳吉布私宅 出动“囚车”引发猜测 德西蕾为何能波马夺冠 揭秘比赛日的背后故事 香港辱旗议员侥幸保留议席 称“不后悔倒插国旗” 《大寒》导演听说网上转发像潮水 却完全不敢相信 英方愿与中国携手维护自由贸易与多边机制 网友晒老公照:婚姻是个“养猪场” 怎个胖字得了 吉维克安泽赛卡尔森惊险逆转取胜 吉里掀翻马梅 2018年全国“两会”期间北京全市将采取禁飞措施 中巡OR美巡中国? 中国球员心中天平偏向威巡通道 前国安人气外援重返北京踢球 数百名球迷前来接机 美法称将对叙化武攻击事件采取措施 战争伏笔埋下 农村一二三产业融合发展有哪些短板?发改委回应
美国代表:今年美对华出口大豆预计将减少20% 热刺为续约主帅真下血本!给你1.5亿镑随便花 曼城官方宣布签下巴黎小妖 法国潜力新星正式加盟 Facebook的世纪大跌,科技股凛冬将至? 台湾成语词典乱解“航空母舰”:形容女人身躯庞大 玄松月回国次日 朝鲜向韩通报艺术团冬奥演出日程 注册制缓行创业板指大涨3.61% 桥水达里奥中国行开启 菲律宾华人区商场现枪击案 警方介入凶手仍在逃 这个正部级单位史上唯一“一把手”晋升副国(图) 如何能一天挣500元 前景最好的十大专业 加盟店排行榜 赚钱最快的八个方法 亚游