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的表单上,还是在部分视图中? –