MVC——就酱紫一个系列,这是一个好的开始6
我们继续 今天完善一下 分类的增删改
首先 我们在 ClassificationController 新建一个方法 list
然后在Controller 内部实现一个接口
private IClassificationService classificationService = new ClassificationService();
添加list
public ActionResult List() { var list = classificationService.GetAll(); return View(list.ToList()); }
在list内部 右键添加一个新的视图
接就有一下代码
@model IEnumerable<Model.Classification> @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width" /> <title>分类列表</title> </head> <body> <p> @Html.ActionLink("Create New", "Create") </p> <table> <tr> <th>分类名称 </th> <th>封面图片 </th> <th>排序 </th> <th>是否显示 </th> <th>录入时间 </th> <th>操作</th> </tr> @foreach (var item in Model) { <tr> <td> @Html.DisplayFor(modelItem => item.Classify) </td> <td> @Html.DisplayFor(modelItem => item.CoverPic) </td> <td> @Html.DisplayFor(modelItem => item.Sort) </td> <td> @(item.IsDisplay == 0 ? "否" : "是") </td> <td> @item.EntryTime.ToString("yyyy-MM-dd") </td> <td> @Html.ActionLink("修改", "Edit", new { id = item.Id }) | @Html.ActionLink("详情", "Details", new { id = item.Id }) | @Html.ActionLink("删除", "Delete", new { id = item.Id }) </td> </tr> } </table> </body> </html>
在添加的页面的时候把选用母板页勾去就有 Layout = null;
如果没有勾去 页面是没有这个代码的 默认是引用Shared 文件里面的_Layout.cshtml
可以自己 添加在
@{ Layout = null; }
就ok了
@(item.IsDisplay == 0 ? "否" : "是") 如果要对字段的数据处理 一定要@()在里面处理
继续 添加 create 新增页面
public ActionResult Create() { return View(); }
这个默认就可 只是为了页面的跳转
看一下页面里面
@model Model.Classification @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width" /> <title>添加分类</title> </head> <body> <h2>添加分类</h2> @using (Html.BeginForm()) { @Html.ValidationSummary(true) <fieldset> <legend>Classification</legend> <div class="editor-label"> 分类名称 </div> <div class="editor-field"> @Html.EditorFor(model => model.Classify) @Html.ValidationMessageFor(model => model.Classify) </div> <div class="editor-label"> 分类图片 </div> <div class="editor-field"> @Html.EditorFor(model => model.CoverPic) @Html.ValidationMessageFor(model => model.CoverPic) </div> <p> <input type="submit" value="添加" /> </p> </fieldset> } <div> @Html.ActionLink("返回列表", "List") </div> @section Scripts { @Scripts.Render("~/bundles/jqueryval") } </body> </html>
Html.BeginForm() 这个表单提交有12个重构的方法 自己可以看一下 其中包括 可以提交到哪个Controller里面哪个action
还有参数之类的
新增Controllers里面还有个方法
[HttpPost] public ActionResult Create(Classification classification) { if (ModelState.IsValid) { classification.Id = GuidToLongID(); classificationService.Add(classification); return RedirectToAction("Index"); } return View(classification); }
可以看到 [HttpPost] 这个属性 表名是post方式提交数据的
接着是修改
public ActionResult Edit(long id = 0) { Classification classification = classificationService.GetClassification(id); if (classification == null) { return HttpNotFound(); } return View(classification); } //// //// POST: /Classification/Edit/5 [HttpPost] public ActionResult Edit(Classification classification) { if (ModelState.IsValid) { classificationService.Update(classification); return RedirectToAction("List"); } return View(classification); }
修改这里有俩个方法 第一个是 页面跳转 和 加载数据用的 同新增
第二个就是表单提交用的
还有查看详细就比较简单了
public ActionResult Details(int id = 0) { Classification classification = classificationService.GetClassification(id);if (classification == null) { return HttpNotFound(); } return View(classification); }
添加个页面
@model Model.Classification @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width" /> <title>分类详情</title> </head> <body> <h2>详情</h2> <fieldset> <legend>分类详情</legend> <div class="display-label"> 分类详情 </div> <div class="display-field"> @Html.DisplayFor(model => model.Classify) </div> <div class="display-label"> 封面图片 </div> <div class="display-field"> @Html.DisplayFor(model => model.CoverPic) </div> <div class="display-label"> 录入时间 </div> <div class="display-field"> @Html.DisplayFor(model => model.EntryTime) </div> </fieldset> <p> @Html.ActionLink("修改", "Edit", new { id = Model.Id }) | @Html.ActionLink("返回列表", "Index") </p> </body> </html>
今天到这里 写的有点晚了
我们的QQ群:
ASP.NET零度交流群
105568127

浙公网安备 33010602011771号