五、Asp.Net MVC4.0开发CMS系统案例之用户信息修改模块
用户信息Modely已经有了,所以不需要编写这块,直接实现Contraller即可。
首页要修改用户个人信息必须是在登录状态下才能有权限,因此我们当客户登录成功之后,默认进入个人的管理中心。所以需要有个默认的Action.
///<summary>///默认的用户个人信息中心///</summary>///<returns></returns>[UserAuthorize]publicActionResultDefault(){var_userInfo=userRpy.Find(LoginName);ViewData["UserType"]=Common.Function.getUserTypeList(_userInfo.UserType);ViewData["Flag"]=Common.Function.getUserFlagList(_userInfo.Flag);returnView(_userInfo);}
读取当期登录人的所有用户信息,返回到View页面显示。点击右键添加视图
调整View页面代码布局与内容:
@modelHillstone.Models.SysComUser@{ViewBag.Title="个人信息";}<divclass="user-navfloat-left">@Html.Partial("PartialUserNav")</div><fieldsetclass="float-left"><legend>个人信息</legend><divclass="display-label">@Html.DisplayNameFor(model=>model.LoginName)</div><divclass="display-field">@Html.DisplayFor(model=>model.LoginName)</div><divclass="display-label">@Html.DisplayNameFor(model=>model.UserName)</div><divclass="display-field">@Html.DisplayFor(model=>model.UserName)</div><divclass="display-label">@Html.DisplayNameFor(model=>model.OrderNo)</div><divclass="display-field">@Html.DisplayFor(model=>model.OrderNo)</div><divclass="display-label">@Html.DisplayNameFor(model=>model.UserType)</div><divclass="display-field">@ViewData["UserType"].ToString()</div><divclass="display-field">@Html.DisplayNameFor(model=>model.Flag)</div><divclass="display-label">@ViewData["Flag"].ToString()</div><divclass="display-label">@Html.DisplayNameFor(model=>model.UnitId)</div><divclass="display-field">@Html.DisplayFor(model=>model.UnitId)</div><divclass="display-label">@Html.DisplayNameFor(model=>model.PosId)</div><divclass="display-field">@Html.DisplayFor(model=>model.PosId)</div><divclass="display-label">@Html.DisplayNameFor(model=>model.CreatedUserName)</div><divclass="display-field">@Html.DisplayFor(model=>model.CreatedUserName)</div><divclass="display-label">@Html.DisplayNameFor(model=>model.CreatedDate)</div><divclass="display-field">@Html.DisplayFor(model=>model.CreatedDate)</div></fieldset><p>@Html.ActionLink("Edit","Edit",new{id=Model.UserId})|@Html.ActionLink("BacktoList","Index")</p>
二、用户信息修改
#region修改信息///<summary>///修改用户信息默认页面///</summary>///<returns>URL</returns>[UserAuthorize]publicActionResultUserChangeInfo(){var_userInfo=userRpy.Find(LoginName);ViewData["Flag"]=Common.Function.getUserFlagList(_userInfo.Flag);returnView(_userInfo);}///<summary>///提交修改用户数据///</summary>///<paramname="userInfo">用户数据实体</param>///<returns>URL</returns>[UserAuthorize][HttpPost]publicActionResultUserChangeInfo(SysComUseruserInfo){ViewData["Flag"]=Common.Function.getUserFlagList(userInfo.Flag);//对要做修改的用户,检查输入的密码是否正确if(userRpy.Authentication(LoginName,userInfo.Password)==0){//读取数据库中该用户是否还存在var_userInfo=userRpy.Find(userInfo.LoginName);_userInfo.UserName=userInfo.UserName;_userInfo.UserType=userInfo.UserType;_userInfo.UnitId=userInfo.UnitId;_userInfo.PosId=userInfo.PosId;_userInfo.Flag=userInfo.Flag;if(userRpy.Update(_userInfo)){ModelState.AddModelError("Message","修改成功!");returnView();}else{ModelState.AddModelError("Message","修改失败!");returnView();}}else{ModelState.AddModelError("Password","输入的密码错误!");returnView();}}#endregion
修改用户信息时候首先确认登录身份[UserAuthorize],其次输入密码的是否正确Authentication
再从数据库读取当前登录名的数据Find,最后执行更新Update.
@modelHillstone.Models.SysComUser@{ViewBag.Title="UserChangeInfo";Layout="~/Views/Shared/_Layout.cshtml";}<h3>UserChangeInfo</h3>@using(Html.BeginForm()){@Html.AntiForgeryToken()@Html.ValidationSummary(true)<divclass="user-navfloat-left">@Html.Partial("PartialUserNav")</div><fieldsetclass="float_left"><legend>SysComUser</legend>@Html.HiddenFor(model=>model.UserId)<divclass="editor-label">@Html.LabelFor(model=>model.LoginName)</div><divclass="editor-field">@Html.EditorFor(model=>model.LoginName)@Html.ValidationMessageFor(model=>model.LoginName)@Html.DisplayDescriptionFor(model=>model.LoginName)</div><divclass="editor-label">@Html.LabelFor(model=>model.UserName)</div><divclass="editor-field">@Html.EditorFor(model=>model.UserName)@Html.ValidationMessageFor(model=>model.UserName)@Html.DisplayDescriptionFor(mode=>mode.UserType)</div><divclass="editor-label">@Html.LabelFor(model=>model.Password)</div><divclass="editor-field">@Html.EditorFor(model=>model.Password)@Html.ValidationMessageFor(model=>model.Password)</div><divclass="editor-label">@Html.LabelFor(model=>model.OrderNo)</div><divclass="editor-field">@Html.EditorFor(model=>model.OrderNo)@Html.ValidationMessageFor(model=>model.OrderNo)</div><divclass="editor-label">@Html.LabelFor(model=>model.UserType)</div><divclass="editor-field">@Html.RadioButtonFor(model=>model.UserType,0)企业内部@Html.RadioButtonFor(model=>model.UserType,1)企业外部</div><divclass="editor-label">@Html.LabelFor(model=>model.Flag)</div><divclass="editor-field">@Html.DropDownListFor(model=>model.Flag,(List<SelectListItem>)ViewData["Flag"])@Html.ValidationMessageFor(model=>model.Flag)</div><divclass="editor-label">@Html.LabelFor(model=>model.UnitId)</div><divclass="editor-field">@Html.EditorFor(model=>model.UnitId)@Html.ValidationMessageFor(model=>model.UnitId)</div><divclass="editor-label">@Html.LabelFor(model=>model.PosId)</div><divclass="editor-field">@Html.EditorFor(model=>model.PosId)@Html.ValidationMessageFor(model=>model.PosId)</div><divclass="editor-label">@Html.LabelFor(model=>model.CreatedUserId)</div><divclass="editor-field">@Html.EditorFor(model=>model.CreatedUserId)@Html.ValidationMessageFor(model=>model.CreatedUserId)</div><divclass="editor-label">@Html.LabelFor(model=>model.CreatedUserName)</div><divclass="editor-field">@Html.EditorFor(model=>model.CreatedUserName)@Html.ValidationMessageFor(model=>model.CreatedUserName)</div><divclass="editor-label">@Html.LabelFor(model=>model.CreatedDate)</div><divclass="editor-field">@Html.EditorFor(model=>model.CreatedDate)@Html.ValidationMessageFor(model=>model.CreatedDate)</div><p><inputtype="submit"value="Save"/>@Html.ValidationMessage("Message")</p></fieldset>}<div>@Html.ActionLink("BacktoList","Index")</div>@sectionScripts{@Scripts.Render("~/bundles/jqueryval")}
radioButton和DropDownList的控件在编辑页面使用方法:
<divclass="editor-field">@Html.RadioButtonFor(model=>model.UserType,0)企业内部@Html.RadioButtonFor(model=>model.UserType,1)企业外部</div>
<divclass="editor-field">@Html.DropDownListFor(model=>model.Flag,(List<SelectListItem>)ViewData["Flag"])@Html.ValidationMessageFor(model=>model.Flag)</div>
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。