我有一个创建用户页面 - 它目前列出一个包含系统中所有当前用户的表格。我可以点击创建新按钮 - 这是做一个jQuery ajax提交,它调用我的控制器方法并返回一个局部视图,并加载包含所有字段的新模态jQuery对话框,例如Forename,Surname等。所以我有我的表格背景和模态视图中屏幕中心的这个对话框,所以它优先。如果一个用户名被点击,同样的方法被称为excpet,一个唯一的用户ID被传入,所以对话框表单不会被加载为空 - 它将从用户数据库中加载用户的当前详细信息,并作为用户标识存在删除按钮被添加到用户对话框以及保存和取消,这些都在创建新的。C#MVC 3部分视图不符合控制器方法
现在的问题 - 我已经附上我的部分视图页面如下 - 我也添加了自己的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;
});
我的对话框容器是当我从UserAction方法返回时,用一个简单的消息说出“用户已更新”或“用户已删除”以及一个确定按钮,当点击它时将刷新谁乐页(所以主表将被更新)
然后我控制器上我有这样的方法:
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方法,但它永远不会获得击中当我点击删除用户按钮或保存用户按钮时,我被卡住了。
如果您添加一个OnError处理程序并只是提醒某事,该处理程序是否会被解雇? – glosrob
@glosrob - 会尝试在ajax调用中添加错误处理程序,并查看它是否触发。 –
您的提交触发器选择器上有错字(缺少单引号)。这是你正在使用的确切代码还是只是一个重写的Stack示例? –