如何在MVC中使用bootstrap modal编辑表格数据?

2023-11-26

我在 MVC 视图中有一个表,显示员工详细信息。我想添加编辑功能,但我不想在新页面中打开它,而是想使用引导模式来显示它。 (http://twitter.github.com/bootstrap/javascript.html#modals)

我认为我不必使用ajax,因为数据已经在页面上可用。我想我需要一些 jquery 或 razor 代码来将所选员工的数据传递到引导模式,并将其弹出在同一屏幕上。下面是我的代码。任何帮助将不胜感激。谢谢

@Foreach(var item in Model.Employees)
{
<tr>
   <td>@User.Identity.Name
            </td>
            <td>@item.FirstName
            </td>....other columns
<td><a href="#myModal" role="button" class="btn" data-toggle="modal">Edit</a>
    <td>
    </tr>........other rows
}
**Bootstrap Modal**


<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">

  <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
    <h3 id="myModalLabel">Edit Employee</h3>
  </div>

  <div class="modal-body">
    <p>Selected Employee details go here with textbox, dropdown, etc...</p>
  </div>

  <div class="modal-footer">
    <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
    <button class="btn btn-primary">Save changes</button>
  </div>
</div>

确实有两种可能性:有或没有 AJAX。如果您想在没有 AJAX 的情况下执行此操作,您可以订阅“编辑”链接的单击事件,然后将值从表复制到模式,最后显示模式。

因此,首先给您的编辑链接一些类别:

<a href="#" class="btn edit">Edit</a>

您可以订阅:

$('a.edit').on('click', function() {
    var myModal = $('#myModal');

    // now get the values from the table
    var firstName = $(this).closest('tr').find('td.firstName').html();
    var lastName = $(this).closest('tr').find('td.lastName').html();
    ....

    // and set them in the modal:
    $('.firstName', myModal).val(firstName);
    $('.lastNameName', myModal).val(lastName);
    ....

    // and finally show the modal
    myModal.modal({ show: true });

    return false;
});

这假设您已经为<td>模式中的元素和输入字段。


如果您想使用 AJAX,您可以生成如下链接:

@Html.ActionLink("Edit", "Edit", "Employees", new { id = employee.Id }, new { @class = "btn edit" })

然后订阅该按钮的点击事件并触发AJAX请求:

$('a.edit').on('click', function() {
    $.ajax({
        url: this.href,
        type: 'GET',
        cache: false,
        success: function(result) {
            $('#myModal').html(result).find('.modal').modal({
                show: true
            });
        }
    });

    return false;
});

您的主视图中将有一个简单的模式占位符,其中包含详细信息:

<div id="myModal"></div>

将要执行的控制器操作应使用 id 获取员工记录并将其传递给部分视图:

public ActionResult Edit(int id)
{
    Employee employee = repository.Get(id);
    EmployeeViewModel model = Mapper.Map<Employee, EmployeeViewModel>(employee);
    return PartialView(model);
}

最后是相应的部分:

@model EmployeeViewModel

<div class="modal hide fade">
    <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h3>Edit Employee</h3>
    </div>
    <div class="modal-body">
        <div>
            @Html.LabelFor(x => x.FirstName)
            @Html.EditorFor(x => x.FirstName)
        </div>
        <div>
            @Html.LabelFor(x => x.LastName)
            @Html.EditorFor(x => x.LastName)
        </div>
        ...
    </div>
    <div class="modal-footer">
        <a href="#" class="btn btn-primary" data-dismiss="modal">Close</a>
        <button class="btn btn-primary">Save changes</button>
    </div>
</div>

显然,您还需要将输入字段包装到Html.BeginForm这将允许您将员工的更新详细信息发送到服务器。如果您想留在同一页面上,可能还需要 AJAX 化此表单。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在MVC中使用bootstrap modal编辑表格数据? 的相关文章

随机推荐

  • Firebase 存储使用 490MB 但我没有存储桶?

    Firebase 存储正在使用 490 MB 但尚未初始化任何存储桶 我无法追踪该存储的来源 但检查 Firebase 对空存储收取 0 10 美元的费用是很奇怪的 我在哪里可以删除此存储以及为什么 firebase 因没有存储桶而收费 目
  • Dijkstra算法:如果有两个或多个权重最小的节点怎么办?

    在 Dijkstra 算法中 如果算法中的某个点有两个或多个权重最小的节点 我该怎么办 在维基百科中 http en wikipedia org wiki Dijkstra 27s algorithm在步骤号 6 它说 将暂定距离最小的未访
  • 使用 pip 安装 TextBlob 时遇到问题

    我在 Windows 10 上使用 pip 在命令行中安装 TextBlob 时遇到了一些困难 根据他们的文档 您需要连续运行两个命令 pip install U textblob python m textblob download co
  • 非轴对齐矩形交集[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我正在尝试找到一种算法来计算两个矩形 不一定是轴对齐 之间的交集 并返回结果交集 这个问题描述寻找是否存在交叉点 我想要得到交叉点的最终形状 如果存在 我对该算法的应用将使用一个
  • 从“docker ps”获取容器 ID 的 Shell 命令

    我基本上希望实现这两个步骤 1 运行docker镜像 docker run p 80 80 某些图像名称 25 2 现在 docker ps 返回有关容器的完整数据 但我只是在寻找容器 ID 3 对其进行一些测试 例如 docker exe
  • jquery颜色动画间歇性地抛出无效的属性值

    我正在尝试为 ASP Net 超链接的背景设置动画 以在更新面板刷新时进行黄色淡入淡出 到目前为止 它几乎在所有时间都有效 但偶尔会抛出一个 JavaScript 错误 无效的属性值 它调试到jquery颜色插件代码到这一行 fx elem
  • 为 STL 排序算法定义 < - 运算符重载、函子还是独立函数?

    我有一个包含 Widget 类对象的 stl list 它们需要根据 Widget 类中的两个成员进行排序 为了使排序工作 必须定义一个比较两个 Widget 对象的小于比较器 似乎有无数种方法可以做到这一点 据我所知 人们可以 A 在类中
  • 获取内存上的可用空间

    是否可以通过 Android SDK 获取 Android 设备 而不是 SD 卡 上的可用内存量 如果是这样 怎么办 this帖子可能很适合您的问题 还检查这个线程 这里有很多关于SO的信息 谷歌搜索了一下 这是解决方案 位于安卓 git
  • 隐藏超出 DIV 元素的文本

    我有一个固定宽度的 DIV 元素 其中有一些文本 其中没有任何空格供 HTML 解析器自动分成多行 文本超出了 DIV 的限制并弄乱了 pgae 有没有办法让超出边界的文本不可见 是否可以将其分成多行 或者更好地分成多行 并在每条折行的末尾
  • 多线程比单线程快吗?

    我想检查多线程是否比单线程快 然后我在这里做了一个演示 public class ThreadSpeedTest param args public static void main String args System out print
  • 将“C50 型号”转换为“rpart”型号

    有没有办法使用rpart plot用于绘制不属于的对象的库rpart 用于制作决策树 例如 这是经典的rpart and rpart plot正在运行的库 load libraries library rpart library rpart
  • mysql中什么是复合外键?

    在我正在使用的框架的文档中看到这个术语 复合外键 yii 什么是复合外键 在 mySql 数据库中 我的猜测是 考虑到两个表之间的关系 一个表有一列的名称与另一个表的 id 完全相同 免责声明 我做了尽职调查 并在谷歌上搜索了大约两分钟 但
  • VS 2010 Web 服务项目模板丢失?

    这可能是一个愚蠢的问题 但当我尝试创建新项目时 我找不到 Web 服务应用程序模板 您可能需要一个 WCF 服务项目 新建项目 gt Visual C 或 Visual Basic gt WCF 服务应用程序
  • 如何在 JSON 中显示带有尾随零的 BigDecimal 数字(而不是字符串)?

    在我的表示响应中 我有一个 BigDecimal 类型的字段 它的值为 2 30 但 json 响应将其显示为 2 3 有没有办法同时显示尾随零 而不将其显示为字符串 顺便说一句 我正在使用杰克逊库 version 2 3 needs to
  • 还有一个“无法加载文件或程序集......或其依赖项之一。系统找不到指定的文件”

    我有一个带有 NUnit 测试的 dll 运行良好 我将其从 Any CPU 转换为 x86 项目 因为我需要跨不同平台可靠地使用 SQLite 因此我需要包含 32 位 System Data SQLite dll 并让所有内容都引用它
  • 像 iPhone 上的地址簿排序一样对 NSString 的 NSArray 进行排序

    我有一个字符串数组 名称 我想像 iPhone 上的地址簿对它们进行排序一样对它们进行排序 例如 li gt E 下 例如 li gt A 下 例如 4li gt 在 下 有什么建议么 您需要对字符串执行不区分变音符号的比较 NSStrin
  • 对卷积神经网络中 1D、2D 和 3D 卷积的直观理解[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 谁能通过示例清楚地解释卷积神经网络 深度学习中 中 1D 2D 和 3D 卷积之间的区别 我想用图片来解释C3D 简而言之 卷积方向 输出形状很重要 一维卷积 基础 just 1 计
  • getView() 返回 null

    我基本上有一个AsyncTask 从主运行Activity 填充一个ViewPager在一个片段内 我正在膨胀 xml 布局文件来填充ViewPager 问题是我无法获取指向布局内视图 imageview textview 的指针 以便我可
  • Android Deeplink pathPrefix 属性被忽略

    我在清单文件中为我的 Android 应用程序定义了一个深层链接
  • 如何在MVC中使用bootstrap modal编辑表格数据?

    我在 MVC 视图中有一个表 显示员工详细信息 我想添加编辑功能 但我不想在新页面中打开它 而是想使用引导模式来显示它 http twitter github com bootstrap javascript html modals 我认为