ASP.Net MVC开发基础学习笔记(9):查看详情、编辑数

作者:襄阳西继迅达电梯有限公司  发布时间:2017-09-07 13:29:10
ASP.Net MVC开发基础学习笔记(9):查看详情、编辑数据、删除数据

所谓万事开头难,前面用两节介绍了查询页面,一节介绍了创建数据。由于前面做了大量的铺垫,本节就能顺利的将查看详情、编辑数据、删除数据在一节中全部介绍给大家。前后这几节加起来就完成了一个简单信息系统的增删改查(CRUD)的所有操作。

添加链接

要进行这三个操作,首先在查询页面的每一条记录后面添加对应的链接。代码如下:

@Html.DisplayFor(modelItem => item.FirstName) @Html.DisplayFor(modelItem => item.LastName) @Html.DisplayFor(modelItem => item.Sex) @Html.DisplayFor(modelItem => item.Rating) @Html.ActionLink("Details","Details", new { id = item.ID }) | @Html.ActionLink("Edit", "Edit" , new { id = item.ID }) | @Html.ActionLink("Delete", "Delete", new { id = item.ID })

上面代码对应着数据列表的一行,其中黄色的部分就是我们添加的链接。这三个链接对应三个不同的操作,他们都需要ID作为参数来确定操作的是哪一条数据,改动后的页面显示如下:

\

红框部分就是我们添加的链接。

查看详情

查看详情对应Details链接。点击链接之后会请求当前Contoller,也就是CompanyController的Details Action。那么我们就在~\Controllers\CompanyController.cs下写这个Action。代码如下:

public ActionResult Details(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Worker worker = db.Workers.Find(id); if (worker == null) { return HttpNotFound(); } return View(worker); }

第3-6行表示如果访问这个Actions时没有给参数id则返回BadRequest错误。如下图所示,地址栏里面没有给出ID,返回Bad Request错误。

\

第7-11行表示如果根据id没有找到对应的信息则返回HttpNotFound错误,如下图所示:

\

第12行,如果根据id找到了对应的信息则用View显示。

在~Views\Company\下创建Details.cshtml视图,写入代码如下:

@model SlarkInc.Models.Worker @{ ViewBag.Title = "Details"; } Worker Details

Student @Html.DisplayNameFor(model => model.FirstName) @Html.DisplayFor(model => model.FirstName) @Html.DisplayNameFor(model => model.LastName) @Html.DisplayFor(model => model.LastName) @Html.DisplayNameFor(model => model.Sex) @Html.DisplayFor(model => model.Sex) @Html.DisplayNameFor(model => model.Rating) @Html.DisplayFor(model => model.Rating)

@Html.ActionLink("Edit", "Edit", new { id = Model.ID }) | @Html.ActionLink("Back to List", "Index")


代码中用DisplayNameFor函数显示属性名,用DisplayFor函数显示属性值。

页面用

和Bootstrap的"dl-horizontal"类布局页面,使每一个属性名和属性值占一行,显示效果如下:

\

第37行给出了编辑此页面的链接。38行给出返回查询页面的链接。

编辑数据

在~\Controllers\CompanyController.cs中加入用来进入Edit页面的Action代码如下:

public ActionResult Edit(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Worker worker = db.Workers.Find(id); if (worker == null) { return HttpNotFound(); } return View(worker); }

看起来眼熟?没错,和Details的Action是一模一样的,这里就不重复了。

下面写View。在~\Views\Company\下创建Edit.cshtml视图,写入代码如下:

@model SlarkInc.Models.Worker @{ ViewBag.Title = "Edit"; } Worker Edit @using (Html.BeginForm()) { @Html.AntiForgeryToken() @Html.ValidationSummary(true) @Html.HiddenFor(model => model.ID) @Html.LabelFor(model => model.FirstName, new { @class = "control-label col-md-2" }) @Html.EditorFor(model => model.FirstName) @Html.ValidationMessageFor(model => model.FirstName)

@Html.LabelFor(model => model.LastName, new { @class = "control-label col-md-2" }) @Html.EditorFor(model => model.LastName) @Html.ValidationMessageFor(model => model.LastName)

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:恩施SEO http://enshi.raoyu.net

  • 上一篇:使用python爬取csdn博客访问量
  • 下一篇:最后一页
  •