我有一個創建用戶頁面 - 它目前列出一個包含系統中所有當前用戶的表格。我可以點擊創建新按鈕 - 這是做一個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示例? –