0

ユーザーが顧客の詳細を変更できるクイック編集jqueryダイアログがあります。フォームはすばらしいですが、フォームを送信した後、モーダルダイアログを閉じて、バックグラウンドのままのビューに戻る方法を理解できません。

クイックエディットに関する私のhttp投稿は、データベースの更新などをすべて実行しますが、現在、クイックエディットフォームの部分的なビューのみを返します。モーダルを閉じてダイアログを呼び出したページに戻る(リロードせずに...)か、それが不可能な場合はモーダルダイアログに戻る必要があります。

これが私のhttp郵便番号です:

        [HttpPost, ActionName("QuickEdit")]
    public ActionResult QuickEdit(newUser usrdet)
    {
        db.Entry(usrdet).State = EntityState.Modified;
        db.SaveChanges();
        return PartialView(usrdet);
    }

コードはそのままで、更新されたオブジェクトを返しますが、jqueryUIモーダルでは返しません。

どんな助けでも大歓迎です。

UIを呼び出すJavascript:

<script type="text/javascript">
$.ajaxSetup({ cache: false });

$(document).ready(function () {
    $(".openDialog").live("click", function (e) {
        e.preventDefault();
        $("<div></div>")
  .addClass("dialog")
  .attr("id", $(this).attr("dialog-id"))
  .appendTo("body")
  .dialog({
      title: $(this).attr("dialog-title"),
      close: function () { $(this).remove() },
      modal: true,
      width: 706,
      height: 600
  })
  .load(this.href);
    });

    $(".close").live("click", function (e) {
        e.preventDefault();
        $(this).closest(".dialog").dialog("close");
    });
});

4

1 に答える 1

0

データが有効で編集内容を保存できる場合は、次のようにダイアログを閉じるためのjavascriptコードを含む新しい部分ビューを返します。

[HttpPost, ActionName("QuickEdit")]
public ActionResult QuickEdit(newUser usrdet)
{
    if (ModelState.IsValid) {
        db.Entry(usrdet).State = EntityState.Modified;
        db.SaveChanges();
        return PartialView("CloseDialog");
    }
    return PartialView(usrdet);
}

そして、部分ビューCloseDialog:

<script type="text/javascript">
    $(".dialog").dialog("close");
</script>

dialogアクション/ビューをカスタマイズして、dialogs html要素のIDを渡すか、私の例のようにcssクラスに依存することができます。

于 2012-08-16T07:27:41.647 に答える