0

ここで「RedirecttoAction」ステートメントを機能させようとしましたが、動きません。メソッドは次のとおりです。

    [HttpPost]
    public ActionResult UpdateTech(int tech, int id)
    {
        Callout callout = db.Callouts.Find(id);
        callout.TechnicianId = tech;
        callout.TechStatus = "ASSIGNED";
        db.Entry(callout).State = EntityState.Modified;
        db.SaveChanges();
        return RedirectToAction("CalloutAdmin/Index/");
    }

そして、それは完全に機能する次の JQuery によって呼び出されます。

$(function () {
        $(".techdropdown").change(function () {
            var recordToUpdate = $(this).attr("id");
            var selectedTech = $(".techdropdown option:selected").val();
            window.alert(selectedTech);
            $.post("/CalloutAdmin/UpdateTech?tech=" + selectedTech + "&id=" + recordToUpdate);
        });
    });

発生しない唯一のことは、ページが更新されることです。これは、リダイレクトが行うべきことでした。誰でもアドバイスできますか?

アップデート

私がやろうとしているのは、別のビューにリダイレクトせずに、この Callout オブジェクトを更新することです。ドロップダウン リストから技術者を選択すると、コールアウトの技術者の値がドロップダウンから選択した値に自動的に設定されます。

4

2 に答える 2

2

AJAX リクエストにリダイレクトを返し、AJAX リクエストがバックグラウンドでページを読み込んでいます。ページ全体をリダイレクトしたい場合は、jQuery で成功のコールバックを使用することをお勧めします。

$.post("/CalloutAdmin/UpdateTech?tech=" + selectedTech + "&id=" + recordToUpdate, function() { document.location = "CalloutAdmin/Index/"; } );

アクションにリダイレクトの場所を制御させたい場合は、そこから出力された URL を使用してアクションからの戻り値を使用しJsonResultたり、jQuery の成功コールバックでユーザーをリダイレクトさせたりすることをお勧めします。ContentResult

于 2013-08-05T20:13:15.060 に答える