0

予定の情報と定期的な予定を含むビューのオブジェクト モデルがあります。このようなもの:

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

メイン画面から、Appointment フィールドに入力し、AppointmentModel モデルを送信します。また、この画面から、予定の繰り返しに関する情報を含むダイアログ (appointRecurrence に厳密に型指定された部分ビュー) を開きます。

私の質問は次のとおりです。どのように私のアポイントメント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 に答える