0

ユーザーを編集できるフォームがあります。このフォームはポップアップとして表示されます(私はカラーボックスプラグインを使用しています)。[保存]をクリックした後、ポップアップを閉じるのではなく、ポップアップページに表示したままにして、「情報が正常に保存されました」などのテキストを表示できるようにします。現在、[保存]をクリックすると、ポップアップフォームが閉じて、前のページに戻ります。保存時にポップアップを表示したままにすることはできますか?どんな助けでも大歓迎です

見る

  $('.openDialog').colorbox({
                  transition: "elastic",
                  width: "40%", height: "80%"
              });

コントローラ

 [HttpPost]
        public ActionResult Edit(UserViewModel vm)
          {
                Save(vm);
                return View(vm);
          }

見る

<input type="submit" value="Save" id="btnSave" class="openDialog"/>

ajaxフォーム送信を使用しようとしましたが、ポップアップがコントローラーに表示されません。目立たないスクリプトをページとWeb構成に追加しました。また、jquery1.8はまだ適切ではありません。

 @using (Ajax.BeginForm("Edit", "User",
            new AjaxOptions
            {
                HttpMethod = "POST",
                InsertionMode = InsertionMode.Replace
            }))
4

2 に答える 2

1

何が起こっているのかというと、フォームは同じページに送信されている可能性が高いため、ページは「再読み込み」されますが、送信されたフォームデータが含まれます。

やりたいことをするためには、フォームをajax経由で送信する必要があります。このように、フォームはjavascriptを介して送信され、ページがリロードされることはありません。

この場合、コントローラーがビューを返す代わりに、送信が成功したかどうか(およびページを更新する必要があるその他のもの)を通知するステータスメッセージを返します。

于 2013-02-07T21:07:22.247 に答える
1

iframeプロパティをtrueに設定してcolorboxを使用するだけです。最初にフォームを表示するときに、パラメータを追加しますiframe: true

$.colorboxクリックで再度呼び出さないでください。ビューの入力タグは次のようになります。

<input type="submit" value="Save" id="btnSave" />

[送信]ボタンをクリックすると、フォームの送信が行われ、結果が同じカラーボックスのiframeに返されます。Colorboxは内部でAJAXを使用しており、これらすべてを処理するiframeを作成しています。これほど簡単な方法はありません。

このアプローチの実際を確認するには、http: //www.jacklmoore.com/colorbox/example1/を表示し、「Outside Webpage(iFrame)」と呼ばれるiFrameの例を見て、Wiki検索ページを取得してからフォームを送信します。 、すべて同じカラーボックス内。

于 2013-02-07T22:39:30.393 に答える