利用bootstrap模态框实现新增修改功能

开发环境

VS2019 SqlServer数据库2012
事先创建一个名为Rbac的数据库,表名Roles

在这里插入图片描述

打开VS2019,创建一个MVC项目,添加控制器,以及视图

在这里插入图片描述

在这里插入图片描述

创建实体模型,引用model
在这里插入图片描述

新增

显示数据页面

<table class="table table-bordered">
    <thead>
        <tr>
            <th>名称</th>
            <th>备注</th>
            <th>修改</th>
            <th>删除</th>
        </tr>
    </thead>
    <tbody>
        @foreach (var item in Model)
        {
            <tr>
                <td>@item.Name</td>
                <td>@item.Remark</td>
                <td>
                    <input type="button" name="name" data-toggle="modal" data-target="#RoleAdd" class="btn btn-outline-info" onclick="edit(@item.ID)" value="修改" />
                </td>
                <td><a href="#" class="btn btn-danger" onclick="del(@item.ID)">删除</a></td>
            </tr>
        }
    </tbody>
</table>

控制器

public ActionResult Index()
        {
            return View(db.Roles.ToList());
        }

在bootstrap4里面找到模态框的代码,进行新增模态框的页面样式布局

<div class="modal fade" id="RoleAdd" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="exampleModalLabel">新增</h5>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                </button>
            </div>
            <div class="modal-body">
                <form class="form-inline">
                    <div class="form-inline">
                        <label for="name">名称</label>
                        <input type="text" id="name" class="form-control" />
                    </div>
                    <div class="form-inline">
                        <label for="Remark">备注</label>
                        <input type="text" id="Remark" class="form-control" />
                    </div>
                </form>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-dismiss="modal">关闭</button>
                <button type="button" class="btn btn-primary" onclick="save()">保存</button>
            </div>
        </div>
    </div>
</div>

添加一个按钮,点击弹出id为RoleAdd的模态框

<button type="button" class="btn btn-outline-info" data-toggle="modal" data-target="#RoleAdd"onclick="add()" >
    新增
</button>

清空模态框文本里面的值

function add() {
            //清空文本框
            $("#name").val("");
            $("#Remark").val("");
            url = "/roles/add";
        }

通过ajax将数据传入后台

var url;
        function save() {
            //获取值
            var name = $("#name").val();
            var Remark = $("#Remark").val();
            //调用ajax
            $.ajax({
                url: url,
                type: "post",
                dataType: "json",
                data: { "Name": name, "Remark": Remark },
                success: function (res) {
                    if (res.code == 1) {
                        //关闭对话框
                        $("#exampleModalLabel").modal("hide");
                        //清空文本框
                        $("#name").val("");
                        $("#Remark").val("");
                        //刷新页面
                        window.location.href = "/roles/index";
                    }
                    alert(res.message);
                }
            });
        }

后台接受数据,进行新增

public ActionResult Add(Role role)
        {
            var code = 0;
            var message = "新增失败";
            db.Roles.Add(role);
            if (db.SaveChanges() > 0)
            {
                code = 1;
                message = "新增成功";
            }
            var res = new
            {
                code = code,
                message = message
            };
            return Json(res, JsonRequestBehavior.AllowGet);
        }

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

修改

修改使用的是同一个模态框

传一个id进roles/edit方法

function edit(id) {
            //根据ID查询出名称和备注,放到文本框
            url = "/roles/edit/" + id;
            $.ajax({
                url: "/Roles/edit/" + id,
                type: "get",
                dataType: "json",
                success: function (res) {
                    $("#name").val(res.Name);
                    $("#Remark").val(res.Remark);
                }
            })
        }

后台查询数据,并且返回json字符串给前台

public ActionResult edit(int id)
        {
            var roles = db.Roles.Where(p=>p.ID==id).Select(p=>new { p.Name,p.Remark}).FirstOrDefault();
            return Json(roles, JsonRequestBehavior.AllowGet);
        }

前台接受后台传过来的值,并且赋给文本框

在这里插入图片描述

再通过save方法传到后台进行修改
在这里插入图片描述

[HttpPost]
        public ActionResult edit(Role role)
        {
            var code = 0;
            var message = "修改失败";
            db.Entry(role).State = System.Data.Entity.EntityState.Modified;
            if (db.SaveChanges() > 0)
            {
                code = 1;
                message = "修改成功";
            }
            var res = new
            {
                code = code,
                message = message
            };
            return Json(res, JsonRequestBehavior.AllowGet);
        }

在这里插入图片描述

删除

//删除
        function del(id) {
            if (window.confirm("确认删除!")) {
                $.ajax({
                    url: "/role/delete/" + id,
                    type: "get",
                    dataType: "json",
                    success: function (res) {
                        alert(res.message);
                    }
                });
            }
        }
public ActionResult Delete(int id)
        {
            var code = 0;
            var message = "删除失败";
            var role = db.Roles.Find(id);
            db.Roles.Remove(role);
            if (db.SaveChanges() > 0)
            {
                code = 1;
                message = "删除成功";
            }
            var res = new
            {
                code = code,
                message = message
            };
            return Json(res, JsonRequestBehavior.AllowGet);
        }
  • 5
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用Bootstrap模态框实现增删改查功能一般需要以下步骤: 1. 创建一个Bootstrap模态框,用于添加、编辑或删除数据。 2. 在模态框中添加表单元素,用于输入或展示数据。 3. 使用AJAX技术发送请求到后台,执行对数据库的增加、修改或删除操作。 4. 在前端页面中实现查找功能,使用AJAX技术发送请求到后台,获取数据并展示在页面上。 具体实现步骤如下: 1. 创建一个Bootstrap模态框,可以使用Bootstrap提供的样式和JavaScript代码。例如: ``` <div id="myModal" class="modal fade" role="dialog"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal">×</button> <h4 class="modal-title">添加/编辑数据</h4> </div> <div class="modal-body"> <!-- 在这里添加表单元素 --> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button> <button type="button" class="btn btn-primary" id="saveBtn">保存</button> </div> </div> </div> </div> ``` 2. 在模态框中添加表单元素,例如: ``` <form role="form"> <div class="form-group"> <label for="name">姓名:</label> <input type="text" class="form-control" id="name" name="name"> </div> <div class="form-group"> <label for="age">年龄:</label> <input type="number" class="form-control" id="age" name="age"> </div> <!-- 在这里添加其他表单元素 --> </form> ``` 3. 使用AJAX技术发送请求到后台,例如: ``` // 添加数据 $("#addBtn").click(function() { $("#myModal").modal("show"); $("#saveBtn").off("click").on("click", function() { var name = $("#name").val(); var age = $("#age").val(); // 发送POST请求到后台 $.ajax({ type: "POST", url: "/add", data: {name: name, age: age}, success: function(data) { // 添加成功后,刷新页面或重新请求数据并展示在页面上 }, error: function() { // 处理错误情况 } }); }); }); // 编辑数据 $("#editBtn").click(function() { // 获取要编辑的数据并展示在模态框中 $("#myModal").modal("show"); $("#saveBtn").off("click").on("click", function() { var name = $("#name").val(); var age = $("#age").val(); // 发送POST请求到后台 $.ajax({ type: "POST", url: "/edit", data: {name: name, age: age}, success: function(data) { // 编辑成功后,刷新页面或重新请求数据并展示在页面上 }, error: function() { // 处理错误情况 } }); }); }); // 删除数据 $("#deleteBtn").click(function() { // 获取要删除的数据的ID // 发送POST请求到后台 $.ajax({ type: "POST", url: "/delete", data: {id: id}, success: function(data) { // 删除成功后,刷新页面或重新请求数据并展示在页面上 }, error: function() { // 处理错误情况 } }); }); ``` 4. 在前端页面中实现查找功能,例如: ``` // 查找数据 $("#searchBtn").click(function() { var keyword = $("#keyword").val(); // 发送GET请求到后台获取数据 $.ajax({ type: "GET", url: "/search", data: {keyword: keyword}, success: function(data) { // 将返回的数据展示在页面上 }, error: function() { // 处理错误情况 } }); }); ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值