我有一个创建用户页面 - 它当前列出了一个包含系统中所有当前用户的表。我可以单击创建新按钮 - 这会执行 jQuery ajax 提交,它调用我的控制器方法并返回部分视图并加载新的模态 jQuery 对话框,其中包含所有字段,即 Forename、Surname 等。所以我的表在背景和此对话框位于模态视图的屏幕中心,因此优先。如果单击用户名,则调用相同的方法 excpet 传入一个唯一的用户 ID,因此对话框表单不会加载为空白 - 它从数据库加载用户的当前详细信息,并且作为用户 ID,有一个删除按钮已添加到“用户”对话框以及“新建”时的“保存”和“取消”。
现在解决问题 - 我已将我的部分视图页面如下所示 - 我还将其自己的 js 添加到部分视图中,因为我需要根据用户做出的一些选择显示/隐藏差异下拉框。
@using (Html.BeginForm("UserAction", "Admin", FormMethod.Post, new { id = "userActionForm" }))
{
//Fields on the dialog box....
}
然后在对话框上 - 我有按钮,即
<input id="DoDeleteUser" type="button" class="dialog-button" value="Delete User" style="margin: 5px" />
然后在我的页面的 JS 文件中,我有以下内容:
$('#DoDeleteUser').click(function (event) {
//alert("Delete Button Pressed"); - In for debugging
$('#userID').val($(event.target).attr("userId")); - get id value into hidden field on page
$('action').val('Delete'); - put action string into hidden field on page
$('#userActionForm).submit();
});
$('#userActionForm').submit(function () {
var formData = $("#userActionForm").serializeArray();
$.ajax({
url: this.action,
type: this.method,
data: formData,
success: function (result) {
$('#dialogContainer').html(result);
}
});
return false;
});
我的对话框容器与第一个页面加载的容器相同页面(因此主表将被更新)
然后在我的控制器上我有这样的方法:
public ActionResult UserAction(UserModel model)
{
if (ModelState.IsValid)
{
if(model.Action == "Delete")
//Go and do delete
return PartialView ("UserActionSuccess", model);
//close if etc etc
但是,我在我的控制器中的 UserAction 方法上设置了一个断点,但是当我点击删除用户按钮或保存用户按钮时它永远不会被击中,这是我卡住了。