MVC4+EF新手入门:编辑数据+删除数据

讲解:

1.首先显示展示用户数据的页面 即Home/Index页面。

2.在页面上添加 编辑 列,附加超链接,点击后会传送Id属性到UserInfo/Edit方法,显示编辑页面ShowDetail。

3.在编辑页面修改用户数据,点击保存,提交到UserInfo/Edit方法 ([HttpPost]属性)

4.在控制器UserInfo/Edit中用EF保存用户数据。


主要代码:

UserInfoController:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using WebApp.Models;

namespace WebApp.Controllers
{
    public class UserInfoController : Controller
    {
        //
        // GET: /UserInfo/
        NCUTBookShopDBEntities db = new NCUTBookShopDBEntities();

        public ActionResult Index()
        {
            var userInfoList = db.UserInfo.Where<UserInfo>(u => true).ToList();
            ViewData["list"] = userInfoList;
            return View();
        }

        public ActionResult ShowDetail(int id)
        {
            var userInfo = db.UserInfo.Where<UserInfo>(u => u.Id == id);
            ViewData["info"] = userInfo;
            return View();


        }

        public ActionResult Delete(int id)
        {
            //UserInfo userInfo = new UserInfo(){Id=id};
            var userInfo = db.UserInfo.Where(u => u.Id == id).FirstOrDefault();
            if (userInfo != null)
            {
                db.Entry(userInfo).State = System.Data.EntityState.Deleted;
                db.SaveChanges();
                return RedirectToAction("Index");

            }
            else
            {
                return Content("编号错误");
            }
        }

        public ActionResult Edit(int id)
        {
            var userInfo = db.UserInfo.Where(u => u.Id == id).FirstOrDefault();
            if (userInfo != null)
            {
                ViewData["userInfo"] = userInfo;
            }
            else
            {
                return Content("编号错误");
            }
            return View();
        }

        [HttpPost]
        public ActionResult Edit(UserInfo info)
        {
            db.Entry(info).State = System.Data.EntityState.Modified;
            if(db.SaveChanges()>0)
                return RedirectToAction("Index");
            else
            {
                return Content("修改失败");
            }
            return RedirectToAction("Index");
        }

    }
}

视图层:UserInfo/Edit

@using WebApp.Models
@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Edit</title>
</head>
<body>
    <div>
        <form method="POST" action="/UserInfo/Edit">
            <table>

                @{
                    UserInfo userInfo = (UserInfo)ViewData["userInfo"];
                    <tr>
                        <td>用户名:</td>
                        <td><input type="text" name="UserName" value="@userInfo.UserName" /></td>
                    </tr>
                    <tr>
                        <td>密码:</td>
                        <td><input type="text" name="Password" value="@userInfo.Password" /></td>
                    </tr>
                    <tr>
                        <td>邮箱:</td>
                        <td><input type="text" name="Email" value="@userInfo.Email" /></td>
                    </tr>
                }
                <input type="hidden" name="Id" value="@userInfo.Id"/>
            </table>
            <input type="submit" value="保存" />
        </form>
    </div>
</body>
</html>
View视图 ShowDetail:

@using WebApp.Models
@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>ShowDetail</title>
</head>
<body>
    <div>
        <table>
            <tr><td>用户名</td><td>密码</td></tr>
            @{
                UserInfo info = (UserInfo)ViewData["info"];
                <tr>
                    <td>@info.UserName</td>
                    <td>@info.Password</td>
                </tr>
            }
        </table>
    </div>
</body>
</html>

在展示用户数据页面 单机删除超连接,可以直接删除数据

@using System.Collections.Generic
@using WebApp.Models
@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
    <script src="~/Scripts/jquery-1.8.2.min.js"></script>
    <script type="text/javascript">
        window.onload = function () {
            var deleteLinks = document.getElementsByClassName("delLink");
            for (var i = 0; i < deleteLinks.length; i++) {
                deleteLinks[i].onclick = function () {
                    if (!confirm("确定要删除吗?")) {
                        return false;
                    }
                }
            }
        }
    </script>
</head>
<body>
    <div>
        <table>
            <tr><th>编号</th><th>用户名</th><th>密码</th><th>详细</th><th>删除</th><th>编辑</th></tr>
            @foreach (UserInfo info in (List<UserInfo>) ViewData["list"])
            {
                <tr>
                    <td>@info.Id</td>
                    <td>@info.UserName</td>
                    <td>@info.Password</td>
                    <td><a href="/UserInfo/ShowDetail?Id=@info.Id">详细</a></td>
                    <td><a href="/UserInfo/Delete?Id=@info.Id" class="delLink">删除</a></td>
                    <td><a href="/UserInfo/Edit?Id=@info.Id" >编辑</a></td>

                </tr>
            }
        </table>
    </div>
</body>
</html>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值