4

submitコントローラーでフォーム送信時に呼び出されるアクションを呼び出す Ajax 呼び出しがあります。

その中には以下のようなものがあります:

if (CSConfigurationMgr.IsMobileUrl(Request.UrlReferrer.AbsoluteUri.PathFromURL()))
    return RedirectToAction("home", "mobile", new { success = true});

ホームページにリダイレクトされ、「ありがとう」メッセージが表示されます。

URLをそのまま指定xxxxxxx/mobile/home?success=trueしてみましたが、期待どおりに機能しました。

私はその条件に当てはまり、ステートメントを返しますが、新しいページにリダイレクトされません。

ルートを確認しましたが、問題はありませんでした。

RedirectToActionを別のアクションに配置して確認しましたが、正常に機能し、新しいページにリダイレクトされました。しかし、ここでは機能していません。

エラー:

  • Cannot redirect after HTTP headers have been sent:時々発生する(モバイルブラウザ)
  • 何も起こらず、ただ同じページにとどまる

さらに、firebugでデバッグしてみました。呼び出しが行われた後、私はプロセスを取得します:

www.test.com私のローカルホストとそのポート番号に他なりません

POST http://www.test.com/forms/submitこれはデータを渡す正しいパスです

GET http://www.test.com/mobile/home?success=trueリダイレクトする必要があるパス。読み込み中のサインを出し続け、firebug でそこから先に進まない。

リクエストは行われていますが、リダイレクトされていないと思われます。

4

1 に答える 1

1

「HTTP ヘッダーが送信された後にリダイレクトできません」というエラーは、HTTP 応答をクライアントに返し始めたことを意味します。したがって、現在リダイレクトすることはできません。コントローラー メソッドの前の方を見て、クライアントに何かが返されるかどうかを確認し、リダイレクト チェックを前に移動します。

奇妙に見える他の唯一のことは、コントローラーの前にビューがあることです (デフォルトは /{controller}/{view}) が、ルートがそのように設定されている可能性があります。

于 2012-12-19T07:39:41.807 に答える