0

現在、すべての CRUD 操作にバインドするために ViewModels を使用していますが、部分的なビューのみを返すアクション メソッドがいくつかあります。

public ActionResult Create(int parentId)
{
    var viewModel = new MyCreateViewModel();
    return PartialView("_Create", viewModel);
}

これらのアクションは、AJAX を介してさまざまなビュー (さまざまなエンティティ) から呼び出され、jQuery ダイアログに表示されます。ダイアログ ボタンはPOSTを介し​​てフォームの ing を処理し$("#form").submit()、別のアクション メソッドがフォームを処理します。理想的には、部分ビューを呼び出した親ビューにリダイレクトします

[HttpPost]
public ActionResult Create(int parentId, MyCreateViewModel viewModel)
{
    //Process the viewModel, map to EF models and persist to the database

    return RedirectToAction(/*What should I insert here?*/);
}

どのビューがこのメソッドに ing を行っているのかわからないためPOST、どのビューにリダイレクトすればよいかをどのように知ることができますか?

4

2 に答える 2

1

アクションメソッドでリダイレクトする代わりに、クライアント側でリダイレクトできます。アクション メソッドでは、操作が成功したか失敗したかを示す結果を返すことができます。クライアント側では、 $.ajax を使用して結果を処理します

        $('#form').submit(function () {
        var self = $(this);
        if (self.valid()) {
            $.ajax({
                type: "POST",
                url: self.attr('action'),
                data: self.serialize(),
                success: function (data) {
                    if (data.Success == true) {
                        //redirect
                    } else{
                        //Error handling
                    }
                },
                error: function (ex) {
                        //Error handling
                }
            });
        }
        return false;
    });
于 2013-07-10T01:44:16.773 に答える