创建空的MVC5-控制器实现CRUD操作

文章目录

文章目录

简单介绍

框架搭建

控制器创建

视图创建

代码部分

效果截图

错误总结


 

简单介绍

上一期中介绍了两表的约束关系的建立,这期将实现两表的增删改查。该文章仍然是基于MVC项目模型下。

开始先在Views文件下创建一个名为User的文件夹

f53291e95bba416382159eef4c504e50.png

框架搭建

1.控制器创建

右击文件Controllers->添加->控制器

b15d514833bf460cac6f4251aa0e1c16.png

2.视图创建

右击代码中的Index

f35bbe800625416588e65b908a9441fd.png

 添加视图->修改视图名称为Index并输入User文件的布局页

7e75202573ac478fba169ef7828ce29b.png

 点击添加

创建增删改查视图页也是同样操作

但在创建视图前需要在控制器内手动输入控制器的动作方法,并将动作方法名按照增删改查的名称命名。

创建后的视图在资源管理器中如图所示:

4230634c7c54463dbf7d92bd9817a1e9.png

代码部分

控制器代码

using System;
using System.Linq;
using System.Net;
using System.Web.Mvc;
using WebApplication8.Models;

namespace WebApplication8.Controllers
{
    public class UserController : Controller
    {
        private readonly studentEntities db = new studentEntities();
        public ActionResult Index()
        {
            return View(db.Users.ToList());
        }

        public ActionResult Create()
        {
            return View();
        }
        [HttpPost]
        public ActionResult Create(Users user)
        {
            if (ModelState.IsValid)
            {
                db.Users.Add(user);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            return View(user);
        }
        public ActionResult Edit(int id)
        {
            var a = db.Users.Find(id);   
            return View(a);
        }
        [HttpPost]
        public ActionResult Edit( Users user)
        {
            db.Entry(user).State = System.Data.Entity.EntityState.Modified;
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        public ActionResult Delete(int? id)
        {
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            Users user = db.Users.Find(id);
            if (user == null)
            {
                return HttpNotFound();
            }
            return View(user);
        }
        [HttpPost, ActionName("Delete")]
        [ValidateAntiForgeryToken]
        public ActionResult DeleteConfirmed(int id)
        {
            Users user = db.Users.Find(id);
            db.Users.Remove(user);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        private ActionResult NotFound()
        {
            throw new NotImplementedException();
        }

        public ActionResult Details(int id)
        {
            var a = db.Users.Find(id);
            return View(a);
        }
        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                db.Dispose();
            }
            base.Dispose(disposing);
        }
    }
}

主界面代码

@{
    ViewBag.Title = "Index";
}
@model IEnumerable<WebApplication8.Models.Users>
<h2>主界面</h2>
<table class="table table-bordered">
    <tr>
        <td>
            <a href="/User/Create" class="btn btn-primary">新建</a>
        </td>
    </tr>
    @foreach (var item in Model)
    {
        <tr>
            <td>
                @Html.DisplayFor(t => item.UserId)
            </td>
            <td>
                @Html.DisplayFor(t => item.UserName)
            </td>
            <td>
                @Html.DisplayFor(t => item.Roleld)
            </td>
            <td>
                <a href="/User/Edit/@item.UserId">修改</a>
                <a href="/User/Delete/@item.UserId">删除</a>
                <a href="/User/Details/@item.UserId">查询</a>
            </td>
        </tr>
    }
</table>

增删改查界面代码

//增添
<form method="post" action="/User/Create">
    <table>
        <tr>
            <td>UserId</td>
            <td><input type="text" name="UserId" /></td>
        </tr>
        <tr>
            <td>UserName</td>
            <td><input type="text" name="UserName" /></td>
        </tr>
        <tr>
            <td>Number</td>
            <td><input type="text" name="Roleld" /></td>
        </tr>
        <tr>
            <td></td>
            <td><input type="submit" value="提交" /></td>
        </tr>
    </table>
</form>

<div>
    <a href="/User/Index">返回</a>
</div>
//删除
<h3>你确定要删除它吗?</h3>
<div>
    <table>
        <tr>
            <td>
            @Html.DisplayNameFor(model => model.UserName)
            </td>
        </tr>

        <tr>
            <td>
                @Html.DisplayFor(model => model.UserName)
            </td>
        </tr>

        <tr>
            <td>
                @Html.DisplayNameFor(model => model.Roleld)
            </td>
        </tr>

        <tr>
            <td>
                @Html.DisplayFor(model => model.Roleld)
            </td>
        </tr>

    </table>

    @using (Html.BeginForm())
    {
        @Html.AntiForgeryToken()

        <div class="form-actions no-color">
            <input type="submit" value="删除" class="btn btn-danger" /> |
            @Html.ActionLink("返回列表", "Index")
        </div>
    }
</div>
//修改
<h2>修改界面</h2>
<form method="post" action="/User/Edit">
    <table>
        <tr>
            <td>UserId</td>
            <td><input type="text" name="UserId" value="@Model.UserId" /></td>
        </tr>
        <tr>
            <td>UserName</td>
            <td><input type="text" name="UserName" value="@Model.UserName" /></td>
        </tr>
        <tr>
            <td>RoleId</td>
            <td><input type="text" name="Roleld" value="@Model.Roleld" /></td>
        </tr>
        <tr>
            <td><input type="submit" value="提交" /></td>
        </tr>
    </table>
</form>

//查询
<h2>查询界面</h2>

<form method="post" action="/User/Details">
    <table class="table table-bordered">
        <tr>
            <td>
                @Html.DisplayFor(t => t.UserId)
            </td>
        </tr>
        <tr>
            <td>
                @Html.DisplayFor(t => t.UserName)
            </td>
        </tr>
        <tr>
            <td>
                @Html.DisplayFor(t => t.Roleld)
            </td>
        </tr>
    </table>
</form>
<div>
    <a href="/User/Index">返回</a>
</div>

部分效果截图

8804d5ae66694547a3a8117a5263e930.png

261b38f3452044aea535624a932ef86a.png

2706834d53a24aceb12061846f2311e2.png


错误总结

1.增删改查时需要注意Roles表中的RoleId数据,执行操作的数据必须在RoleId数据的基础之上。

列举如下:例如,如图Roles表中RoleId列没有17这个数据,此时在Users表中执行RoleId的增删改查操作如果是17将会报错。即在执行Users表中数据的操作时将受到Roles表中RoleId列的约束。

                                  872f02f88fcc4d4bab239e87ed6f9eff.png

 2.添加视图时必然会出现User文件是空的情况,此时布局页不能找到User文件,这时需要手动输入User文件的路径。

b7d2798b7ebe4654a0c96286c68c1513.png

 

  • 29
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值