0
我想知道如何能夠實現這樣的事情?MVC局部視圖更新模型
我有一個view1,它有一個窗體和部分視圖與列表。
現在,當點擊某個按鈕時,我需要打開另一個列表的模式窗體。通過選擇模態形式的元素之一,我需要在我的view1中更新列表並關閉模態窗體。
我想知道如何能夠實現這樣的事情?MVC局部視圖更新模型
我有一個view1,它有一個窗體和部分視圖與列表。
現在,當點擊某個按鈕時,我需要打開另一個列表的模式窗體。通過選擇模態形式的元素之一,我需要在我的view1中更新列表並關閉模態窗體。
以下概述了可能的解決方案。選擇你需要的。
您對view1呈現的部分視圖需要實現顯示另一個局部視圖的彈出對話框。
所以從創建彈出部分開始。 彈出的視圖控制器將有這樣的事情
// in FooController
public ActionResult PopupPartialViewName()
{
// prepare model for your pop-up
return PartialView(PopUpModel);
}
在彈出的視圖中,您將有必須更新您的原始部分的列表,並關閉彈出窗口可點擊(或多個)。你有很多變種如何實現這一點,但想法是一樣的 - 一些HTML元素將被分配onclick JavaScript處理程序,它將讀取點擊值並更新原始列表。
<ul id="popupClickableList">
@foreach(var item in Model)// PopUpModel
{
<li>
<input id="[email protected](item.ID)" type="checkbox" value="@item.ID" />
<label for="[email protected](item.ID)">@item.DisplayValue</label>
</li>
}
<ul>
現在,在你原來的部分,你需要對彈出式窗口,鏈接或按鈕來打開它的標記,以及初始化和驅動彈出的JavaScript。在這個例子中,我使用jQuery Dialog:
<!-- in your original partial -->
<div id="popupView"></div>
<a href="#" id="popUpShow">...</a>
<script type="text/javascript">
$(function() {
$('#popupView').dialog({
autoOpen: false,
resizable: false,
modal: true
});
$('#popUpShow').click(function() {
$('#popupView').load("@Url.Action("PopupPartialViewName")", function() {
// assign the click handler for popupView's clickable list
$('#popupClickableList li').click(function() {
// get a hold of the clicked value
// update element in original list (it's here on this view)
$('#popupView').dialog('close');
});
$(this).dialog('open');
});
return false;
});
});
</script>
如果我得到下一個午休更多的時間我會把這個在Visual Studio中得到它完全:-)工作
無論它在彈出正在獲取其數據?從「主機」頁面的模型或通過Ajax服務器調用? –
最好從服務器調用。 – Toystoj
「some button」在哪裏 - 直接在view1的表單上,還是在部分視圖中? –