0

我的视图有一个对象模型,其中包含约会的信息和约会的重复。像这样的东西:

 public partial class AppointmentModel
 {
      public appointment Appointment { get; set; }
      public appointmentRecurrence Recurrence { get; set; }
      ...
 }

在我的主屏幕上,我正在完成 Appointment 字段并提交 AppointmentModel 模型。同样从这个屏幕中,我打开一个对话框(部分视图强类型化到约会Recurrence),其中包含有关约会重复的信息。

我的问题是:如何将我的约会递归模型发送到我的“主”模型以填充 Recurrence 属性并从控制器提交给我的操作?在创建约会之前,我无法提交约会Recurrence,因此我的复杂对象必须填充所有字段。

谢谢你。

4

1 回答 1

0

当您完成约会重复弹出窗口中的字段后,您应该在隐藏字段中的约会视图中写入适当的数据,最后提交所有字段(包括从弹出窗口迁移的字段)

编辑:

主要形式:

<form id="mainForm" action="/MyController/MyAction" method="POST">
    <input type="text" name="Firstname"/>
    <input type="text" name="Lastname"/>
    <input type="hidden" name="popupData" id="popupData"/>
    <input type="button" value="save" onclick="SavePopupData();"/>
</form>

部分弹出:

<form id="popupForm" method="POST">
    <input type="text" name="Firstname"/>
    <input type="text" name="Lastname"/>
    <input type="button" value="save" onclick="SavePopupData();"/>
</form>

<script type="text/javascript">
    function SavePopupData() {
        //Close popup
        $('#popupData').val($('#popupForm').serialize());
    }
</script>

在 MyController 中:

public ActionResult MyAction(MainFormModel mainFormModel, string popupData)
{
    var popupModelData = new PopupModel();
    UpdateModel(popupModelData, ConvertToFormCollection(popupData));
}

private FormCollection ConvertToFormCollection(string formData)
{
            var collection = new FormCollection();
            var keyValues = formData.Split('&');
            foreach (var keyValue in keyValues)
            {
                var res = keyValue.Split('=');
                collection.Add(res[0], res[1]);
            }
            return collection;
}
于 2012-09-05T07:49:50.877 回答