【发布时间】:2017-10-05 13:31:02
【问题描述】:
我正在开发 MVC 应用程序。我有一个主页,点击超链接会打开一个弹出窗口。
主页:
查看
<a href="#" id="CreateAddlField">Add Fields</a>
打开弹窗的Javascript代码:
$(function () {
$('#CreateAddlField').click(function () {
debugger;
var Param2 = $("#Param2").val();
var Param3 = "CreateFields";
debugger;
var div2 = $("#DivAddlFields");
div2.load("/ControllerName/ActionName", { Param1: 0, Param2: Param2, Param3: Param3 }),
div2.dialog({
modal: true,
width: 600,
height: 600,
title: "Add Fields",
resizable: false,
close: function (event, ui) {
location.reload();
}
});
});
});
这会加载弹出窗口。 Popup 的视图有一些字段用于输入绑定到模式的值:
主要模式:
public class MainModal
{
public List<ListModal> lstModal { get; set; }
}
public class ListModal
{
public string Param1 { get; set; }
public string Param2 { get; set; }
public string Param3 { get; set; }
public string Param4 { get; set; }
public int Param5 { get; set; }
public int Param6 { get; set; }
public string Param7 { get; set; }
}
单击弹出活动中的“添加”按钮时,它会返回主页并将所有模态值发布到控制器。每次它都会更新列表并附加它。如何使列表附加其值?
每次单击添加按钮时,都会调用以下 javascript 并返回到主页,我想在其中附加列表模型:
function AddAddlFields()
{
var formContainer = $("#FormID");
var vmListModal = formContainer.serialize();
window.open("/ControllerName/ActionName?vmListModal=" + formContainer);
}
在控制器中:
public PartialViewResult ActionName(ListModal vmListModal)
{
MainModal vmMaimModal = new MainModal();
vmMaimModal.lstModal.Add(vmListModal); //This is updating the list not appending it
return PartialView("MainPage", vmMaimModal);
}
如何将值附加到列表模式,以便我可以获取在弹出活动中输入的所有值并以表格格式显示在主页中?
【问题讨论】:
-
每次在控制器中加载操作方法时,以前的值都会丢失,因此您需要将它们保存在会话中。
-
我可以将 ViewModel 列表存储在会话中并在 View 中检索它吗?在那种情况下,当我提交表单时,我也会获得所有新添加的值吗?
-
请尝试单例或使用会话。
标签: javascript jquery asp.net-mvc