版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cxh6863/article/details/83472363
在主界面添加修改和删除的超链接(Index.cshtml)
<table id="tbList">
<tr>
<th>id</th>
<th>姓名</th>
<th>状态</th>
<th>操作</th>
</tr>
@*@Html.Raw(ViewBag.HtmlStr)*@
@foreach (BlogUser a in ViewData["DataList"] as List<BlogUser>)
{
<tr>
<td>@a.Id</td>
<td>@a.Name</td>
<td>@a.State</td>
<td>
<a href="/home/modify/@a.Id">修改</a>
<a href="javascript:del(@a.Id)">删除</a>
</td>
</tr>
}
</table>
一、数据的删除
HomeController
HomeController中添加一个Delete方法
public ActionResult Delete(int id)
{
try
{
//1.创建要删除的对象
BlogUser user = new BlogUser() { Id = id };
//2.将对象添加到EF管理容器
db.BlogUser.Attach(user);
//3.将对象包装类的状态 标志位删除状态
db.BlogUser.Remove(user);
//4.跟新到数据库
db.SaveChanges();
return RedirectToAction("Index", "Home");
}
catch (Exception ex)
{
return Content("删除失败"+ex.Message);
}
}
Index.cshtml
在主界面Index.cshtml中添加js代码,转向home下的delete方法,为了友好一些,确认是否删除
<script type="text/javascript">
function del(id) {
if (confirm("您确定要删除吗?")) {
window.location = "/home/delete/" + id;
}
}
</script>
二、数据的修改
HomeController.cs
(1)显示要修改的数据
[HttpGet]
public ActionResult Modify(int id)
{
//1.根据id查询数据库,返回的集合中 拿到第一个实体对象
BlogUser user = (from a in db.BlogUser where a.Id == id select a).FirstOrDefault();
//使用View的构造函数,将数据传递给视图上的名为Model的属性
return View(user);
}
(2)执行修改
[HttpPost]
public ActionResult Modify(BlogUser blogUser)
{
try
{
//db.Configuration.ValidateOnSaveEnabled = false;
//1.将实体对象加入EF对象容器中,并获取伪包装类对象
DbEntityEntry<BlogUser> entry = db.Entry<BlogUser>(blogUser);
//2.将包装类对象的状态设置为unchanged
entry.State = System.Data.Entity.EntityState.Unchanged;
//3.设置 被改变的属性
entry.Property(a => a.Name).IsModified = true;
entry.Property(a => a.State).IsModified = true;
//4.提交到数据库
db.SaveChanges();
//5.更新成功,则命令浏览器重定向到Home/Index 方法
return RedirectToAction("Index", "Home");
}
catch (Exception ex)
{
return Content("修改失败" + ex.Message);
}
}
由于方法名一样,所以在方法前面用[HttpPost]和[HttpGet]来区分
Modify.cshtml
需在最上方引用空间:@model MVC练习.Models.BlogUser
@using (Html.BeginForm("Modify", "Home", FormMethod.Post))
{
<table id="tbList">
<tr>
<td colspan="2">修改 @Html.HiddenFor(a=>a.Id)</td>
</tr>
<tr>
<td>姓名:</td>
<td>@Html.TextBoxFor(a => a.Name)</td>
</tr>
<tr>
<td>状态:</td>
<td>@Html.TextBoxFor(a => a.State)</td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="确认修改" />@Html.ActionLink("返回", "Index", "Home")</td>
</tr>
</table>
}
布局代码
<style type="text/css">
#tbList {
border: 1px solid #0094ff;
width: 400px;
margin: 10px auto;
border-collapse: collapse;
}
#tbList th, td {
border: 1px solid #0094ff;
padding: 10px;
}
</style>
结果