我有一個列出用戶(List.vbhtml)的頁面,並且每個用戶都有一個「編輯」鏈接。編輯鏈接發出Ajax請求:MVC 3:通過JavaScript在局部視圖和視圖之間進行通信
@Ajax.ActionLink("Edit", "Edit", "Player", New With {.id = currentItem.PlayerId}, New AjaxOptions() with { .UpdateTargetId="edit"})
我的控制器中的Edit方法返回包含表單的分部視圖(_Edit)。表單提交後,我想隱藏編輯表單(不是問題),然後重新加載用戶列表。 這就是我所苦苦掙扎的。
如何讓父視圖(List.vbhtml)知道我應該重新加載列表(這將使用Ajax獲取請求完成)?
我不能從編輯分部視圖執行此操作,因爲編輯分部視圖不應該瞭解列表視圖,只能以其他方式(列表視圖瞭解部分視圖)瞭解。
我目前的解決方案是在List.vbhtml編輯在_Edit.vbhtml完成時提出一個自定義事件,並捕獲它:
_Edit.vbhtml:
//let anyone listening know the edit is complete
$(document).trigger('PersonEditComplete');
名單.vbhtml
//when player edit is complete, reload the player list
$(document).bind('PersonEditComplete', function() {
Player.List.Reload();
});
感謝
一旦你的表單被提交,你不能只調用一個jQuery事件,如.remove()嗎? .remove()方法從DOM樹中移除元素。 – 2012-01-28 21:53:10
這將實現隱藏編輯表單,這不是問題。 – 2012-01-28 21:56:42