我有一个MVC视图,其中包含一个可以打开并填充数据的JQuery UI对话框。
<div id="dialog">
.... Table of phone numbers
</div>
<div id="personData">
... Person model data
</div>
我试图将数据从JQuery UI对话框和其他MVC View数据一起传递给控制器操作。
public ActionResult Save(Person person, List<PhoneNumber> phoneNumbers)
{
}
在此示例中,Person类型不是对话框的一部分,并且可以正常发布。电话号码位于JQuery UI对话框的div中,不会发布。
对话框中的元素在View中定义,可以在DOM中看到,但由于某种原因,某些东西阻止了数据与其余View数据一起发布。如果我从“对话框”div中删除.dialog()声明(现在div在表单上可见),数据(phoneNumbers)将发布。
所以我的问题是你如何将JQuery UI对话框数据以及从表单中查看数据发布到控制器操作? (我知道如何使用对话框中的按钮发布UI对话框数据,但由于此数据的状态问题,我需要将其与主视图一起发布。)
答案 0 :(得分:4)
可能是对话框将div移动到表单之外,因此不会提交字段。您可以将字段链接到div之外的隐藏字段或增加表单的范围。
答案 1 :(得分:2)
正如刺激所说,你需要将数据放入你将提交给行动的表格中的某些字段。
在对话框点击功能(使用jQuery .val())
中执行此类操作$("#formFieldName").val() = $("#dialogFieldName").val();
对每个字段重复此操作。
之后,表单中的字段(可能是隐藏字段)将在您提交表单时包含数据。