打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
无废话MVC入门教程十[实战二:用户管理]
mvc问题有问必答,欢迎加群:

一、本文目标

学会制做MVC的管理相关功能

二、本文目录

1.查询

2.修改

3.删除

4.代码下载

1.查询

1) View代码:

 1 @model PagedList<MVC3.DemoModel.User> 2 @using Webdiyer.WebControls.Mvc; 3 @using (Html.BeginForm("Main", "Manage", FormMethod.Get)) 4 { 5     <span>用户名:</span> 6     @Html.TextBox("username", ViewData["username"]) 7     <input type="submit" value="查询" /> 8 } 9 @foreach (MVC3.DemoModel.User user in Model)10 {11     @user.UserID<span>---</span>@user.UserName<span>---</span> 12     @Html.ActionLink("修改", "UserEdit", new { id = user.UserID }) <span>---</span> 13     @Html.ActionLink("详细", "UserDetail", new { id = user.UserID }) <span>---</span> 14     @Html.ActionLink("删除", "UserRemove", new { id = user.UserID })<span>---</span> 15 16     <br />17 }18 <br />19 <br />20 @Html.Pager(Model, new PagerOptions21 {22     PageIndexParameterName = "id",23     ShowPageIndexBox = true,24     FirstPageText = "首页",25     PrevPageText = "上一页",26     NextPageText = "下一页",27     LastPageText = "末页",28     PageIndexBoxType = PageIndexBoxType.TextBox,29     PageIndexBoxWrapperFormatString = "请输入页数{0}",30     GoButtonText = "转到"31 })32 <br />33 >>分页 共有 @Model.TotalItemCount 篇留言 @Model.CurrentPageIndex/@Model.TotalPageCount

2)Control代码:

 1         public ActionResult Main(int? id = 1) 2         { 3             ViewData["username"] = string.Empty; 4             if (Request.QueryString["username"] != null) 5             { 6                 ViewData["username"] = Request.QueryString["username"].ToString(); 7             } 8             List<Model.User> userList = new List<Model.User>(); 9             int totalCount = 0;10             int pageIndex = id ?? 1;11             userList = DemoRepository.User.GetList(ViewData["username"].ToString(), 2, (pageIndex - 1) * 2, out totalCount);12             PagedList<Model.User> mPage = userList.AsQueryable().ToPagedList(0, 2);13             mPage.TotalItemCount = totalCount;14             mPage.CurrentPageIndex = (int)(id ?? 1);15             return View(mPage);16         }

3)代码解释:由于mvcPager渲染到客户端后为<a href="Manage/Main/1">下一页</a>,所以在查询时只能以get的方式向服务器提交查询条件,在View的代码中我们要修改Form的提交方式

1 @using (Html.BeginForm("Main", "Manage", FormMethod.Get))

并且接收到参数后还要回显到文本框中,在Control与View间我们使用ViewData["username"]做数据传递。

4)效果如下:

2.修改

1) View代码:

 1 @model MVC3.DemoModel.User 2 @using (Html.BeginForm()) 3 { 4     @Html.LabelFor(user => user.UserName) 5     <br /> 6     @Html.TextBoxFor(user => user.UserName) 7     <br /> 8     @Html.LabelFor(user => user.Phone) 9     <br />10     @Html.TextBoxFor(user => user.Phone)11     <br />12     @Html.LabelFor(user => user.Residential)13     @Html.DropDownListFor(user => user.Residential, (SelectList)ViewBag.ViewResidential)14     @Html.LabelFor(user => user.UnitNo)15     @Html.DropDownListFor(user => user.UnitNo, (SelectList)ViewBag.ViewUnitNo)16     @Html.LabelFor(user => user.FloorNo)17     @Html.DropDownListFor(user => user.FloorNo, (SelectList)ViewBag.ViewFloorNo)18     @Html.LabelFor(user => user.DoorplateNo)19     @Html.DropDownListFor(user => user.DoorplateNo, (SelectList)ViewBag.ViewDoorplateNo)20     <br />21     @Html.HiddenFor(user => user.UserID)22     <input type="submit" value="修改" />23 }

2)Control代码:

 1         public ActionResult UserEdit(int id) 2         { 3             //取出用户信息 4             if (id != 0) 5             { 6                 Model.User user = DemoRepository.User.Get(new Model.User() { UserID = id }); 7  8                 //取出数据,并通过Helper把数据分解 9                 AddressHelper addressHelper = AddressHelper.GetInstance();10                 addressHelper.GetResidetialItem(GetList());11                 //反选并使用ViewBag传到View12                 ViewBag.ViewResidential = new SelectList(addressHelper.ResidetialItem, "Value", "Text", user.Residential);13                 ViewBag.ViewFloorNo = new SelectList(addressHelper.FloorNoItem, "Value", "Text", user.FloorNo);14                 ViewBag.ViewUnitNo = new SelectList(addressHelper.UnitNoItem, "Value", "Text", user.UnitNo);15                 ViewBag.ViewDoorplateNo = new SelectList(addressHelper.DoorplateNoItem, "Value", "Text", user.DoorplateNo);16                 return View(user);17             }18             return View();19         }

3) 代码解释:

1 ViewBag.ViewResidential = new SelectList(addressHelper.ResidetialItem, "Value", "Text", user.Residential);

是为了把数据库中的数据反选到View上

4)运行效果:

3.删除

1)View代码:

1  @Html.ActionLink("删除", "UserRemove", new { id = user.UserID }, new { @onclick = "return confirm('确定删除吗?');" })<span>---</span> 

2)Control代码

1         //删除用户2         public void UserRemove(int id, FormCollection formCollection)3         {4             Model.User user = new Model.User() { UserID = id };5             DemoRepository.User.Remove(user);6             MessageBox.ShowAndRedirect(this, "删除成功!", "/Manage/Main/");7         }

3)代码解释:

View中加了“确认删除吗?”对话框。

Ciontrol中:int id, FormCollection formCollection:以HttpPost的方式进行删除。

4)运行效果:

4.代码下载

[点击下载]

版权:http://www.cnblogs.com/iamlilinfeng

活到老,学到老,练到老...
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【.NET框架】—— MVC5+EF进行CRUD(一)
[ASP.net教程]定制Asp.NET 5 MVC内建身份验证机制
JS 表单 非空验证
javascript分页
blisshu‘s BLOG
【.NET框架】—— ASP.NET MVC5 表单和HTML辅助(二)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服