如果要在模型彈出窗口中打開EditPartial Action方法的結果,則需要一些模型彈出窗口代碼。
jQuery UI是一個選項。 http://jqueryui.com/demos/dialog/
1)包括在你的頁面的jQuery UI參考,
2)添加下面的腳本到您的網頁,將您的正常鏈接轉換成模型彈出
<script type="text/javascript">
$(function(){
$(".actionLink").click(function (e) {
var url = this.href;
var dialog = $("#dialog");
if ($("#dialog").length == 0) {
dialog = $('<div id="dialog" style="display:hidden"></div>').appendTo('body');
}
dialog.load(
url,
{}, // omit this param object to issue a GET request instead a POST request, otherwise you may provide post parameters within the object
function (responseText, textStatus, XMLHttpRequest) {
dialog.dialog({
close: function (event, ui) {
dialog.remove();
},
modal: true,
width: 460, resizable: false
});
}
);
return false;
});
});
</script>
從你的動作結果,你可以返回你想要在模型彈出窗口中顯示的任何標記。大多數情況下,您將返回一個視圖。如果你想顯示一個局部視圖,如果它是一個ajax請求,並顯示普通視圖,如果它是一個普通的請求,你可以檢查Request.IsAjaxRequest方法來做到這一點。
public ActionResult EditPartial(int id)
{
CustomerViewModel objCustomer=GetCustomer(id);
if(Request.IsAjaxRequest())
{
return View("Partial/Edit",objCustomer);
}
return View(objCustomer);
}
假設你有目前顯示正常的網頁和部分網頁(型號彈出)
我喜歡的名字我的操作方法爲Edit
代替EditPartial
2次,因爲它同時處理請求(阿賈克斯和正常)
你真是太棒了先生。 – OBL 2012-04-10 18:05:21
因此,在實現邏輯之後,我將它帶到部分頁面,用戶可以在其中編輯細節。點擊保存按鈕,我做了一個Ajax調用,並在成功返回data = true時將更改保存到數據庫。如果成功,我怎麼能從EditPartial頁面關閉這個對話框? 謝謝! – OBL 2012-04-10 21:34:17