如何使用bootstrap模式编辑MVC中的表数据?
我在MVC视图中有一个显示员工详细信息的表。 我想添加一个编辑function,但我不想在新页面中打开它,而是想使用bootstrap模式显示它。 ( http://twitter.github.com/bootstrap/javascript.html#modals )
我不认为我必须使用ajax,因为页面上已有数据。 我想我需要一些jquery或razor代码将所选员工的数据传递给bootstrap模式,然后在同一个屏幕上弹出。 以下是我的代码。 任何帮助将不胜感激。 谢谢
@Foreach(var item in Model.Employees) { @User.Identity.Name @item.FirstName ....other columns Edit ........other rows } **Bootstrap Modal**
确实有两种可能性:有或没有AJAX。 如果你想在没有AJAX的情况下这样做,你可以订阅Edit链接的click事件,然后将值从表复制到模态,最后显示模态。
首先给你的编辑链接一些类:
Edit
你可以订阅:
$('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; });
这假设您已经为
元素和模式中的输入字段提供了适当的CSS类。
如果你想使用AJAX,你可以生成如下链接:
@Html.ActionLink("Edit", "Edit", "Employees", new { id = employee.Id }, new { @class = "btn edit" })
然后您订阅此按钮的click事件并触发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; });
你将在主视图中有一个简单的占位符,它将包含详细信息:
将被命中的控制器操作应使用id获取员工记录并将其转移到部分视图:
public ActionResult Edit(int id) { Employee employee = repository.Get(id); EmployeeViewModel model = Mapper.Map(employee); return PartialView(model); }
最后相应的部分:
@model EmployeeViewModel
显然,您还需要将输入字段包装到Html.BeginForm
,以便将更新的员工详细信息发送到服务器。 如果您想要保持同一页面,可能还需要AJAXify此表单。
- SignalR- Jquery:$ .connection.chathub返回undefined
- ViewData.ModelState.IsValid为false,因为Mvc无法解析用逗号分隔数百和数千的值
- 基于正则表达式属性的客户端正则表达式validation失败
- Request.IsAjaxRequest返回false
- Jquery dd / MM / yyyy日期格式validation
- 如何在Kendo UI Grid中拥有行号
- ASP.NET MVC使用JQuery将多个部分视图加载到单个div中
- 使用Jquery ajax在Controller中调用ActionResult方法并返回数据
- 在执行时添加MVC 3和jQuery Validatorvalidation