Jquery UI对话框发布到ASP.Net MVC控制器操作

时间:2009-11-18 03:37:41

标签: asp.net-mvc jquery-ui modal-dialog

我有一个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对话框数据,但由于此数据的状态问题,我需要将其与主视图一起发布。)

2 个答案:

答案 0 :(得分:4)

可能是对话框将div移动到表单之外,因此不会提交字段。您可以将字段链接到div之外的隐藏字段或增加表单的范围。

答案 1 :(得分:2)

正如刺激所说,你需要将数据放入你将提交给行动的表格中的某些字段。

在对话框点击功能(使用jQuery .val()

中执行此类操作
$("#formFieldName").val() = $("#dialogFieldName").val();

对每个字段重复此操作。

之后,表单中的字段(可能是隐藏字段)将在您提交表单时包含数据。