フォームを送信するとすぐに別のページにリダイレクトされるようにします。コントローラーの動作httpostが呼び出されたときにどうなるか気にしない。ボタンをクリックするかフォームが送信されるとすぐに、ユーザーにページをリダイレクトさせたいだけです。以下、私が試してみましたが、そのはボタンをクリックしてjavascript/jqueryを使用してページをリダイレクトするASP.net MVC 5アプリケーション
CSHTMLファイルスニペット
<script>
$(document).ready(function() {
$('#formSubmitButton').click(function() {
debugger;
// Neither works
window.location.href = "/Home/Index";
window.location.href = "https://www.google.com";
});
});
</script>
ホームコントローラー
public ActionResult Index()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult SavePayment(PaymentFormMV data)
{
return View ("Hello")
}
を打つます実際httpostコントローラ方法を動作していないものです
JavaScriptコードでブレークポイントがヒットするのがわかります。しかし効果はありません。また、通常のポストコールは期待どおりに進み、SavePaymentメソッドが呼び出され、それに応じてビューhello
が呼び出されます。私を案内してください。なぜ私はボタンをクリックしてインデックスページにユーザーをリダイレクトできません。私は、SavePaymentが最終的に呼び出されることは知っていますが、リダイレクトは機能していません。何か不足していますか?
編集: ここに全体の話があります。顧客は支払いをしており、支払いの一部はタイムアウトしています。 "Hello"リダイレクションは、タイムアウトが発生していない場合は完璧です。だから、基本的にタイムアウトが2分で起きたら。ユーザーをホームページにリダイレクトする前に、タイマーを1.58分に設定します。 postメソッドが成功を返した場合、 "Hello.cshtml"が呼び出されます。しかし、IISサーバーが2分後にtime out exception
を投げようとしている場合、IISがキックアウトしてユーザーをホームページにリダイレクトする前に、私のJavascriptコードはタイムアウトします(1.58タイマー)。そして、最終的に発生するIISタイムアウトエラーが、ユーザーが安全にリダイレクトされたホームページを上書きしないことを願っています。私を案内してください。結論私はIISがユーザーを追い出すのをやめたい。私は、通常のリダイレクト自体が機能していないので、JavaScriptコードスニペットでタイムアウト間隔コードを追加していません。
これは正しい方法ですが、OPがページから離れてフォームの投稿を離れさせるように思えます。 – nurdyguy
@nurdyguy:そうです。 Shyju:あなたは編集を見ることができます – Unbreakable
@無謀編集 – Shyju