2016-07-25 7 views
0

MVC C#(JSまたはJQueryを使用しない)の使用方法ローダーイメージをロードする/home/stasisにユーザーを送ることができます(既にcssを使用して実装されています)。最終的なURLにロードしてください(実際に読み込み時間が長くなり、ユーザーが何度も何度もクリックすることになります)。MVC中級ページから別の長い読み込み時間ページへのリダイレクト

問題は、JSとJQueryの使用がうまくいかないことです。 (JSまたはJQueryのいずれもサポートしていない)アプリ内Webviewとしても機能します。だから私は/home/indexへ行くリンクをクリックして/home/stasisにロードされ、自動的に最後のURLの読み込みを開始してgoogle.comと言うことができます。

+0

もう一度考えてください。私はうまく動かないハックをしている。最初に、サーバーは読み込み画面のdivタグを返し、サーバー側の読み込みは行いません。いったん完了したら、新しいページのHTMLをloadng divを隠すためのスタイルと一緒に返す – Steve

+0

なぜこれはjavascriptが機能しないのでしょうか? SignalRとEventHandlerの良いユースケースのようです。 – Eonasdan

+0

@Eonasdanおそらく彼のページは、jsが無効になっている別のコンテナ内でホストされています – Steve

答えて

0

javascriptをしないと、私たちは、ブラウザとサーバが正しいことを行うことを願ってする必要があります。サーバーが307リダイレクトを返すとき

  1. ブラウザは、エンティティの内容を表示します。
  2. 長期実行要求が保留されている間、サーバーは部分エンティティを返しません。言い換えると。長期実行要求は、要求の最後の2分の1にあるすべてのエンティティデータを返す必要があります。
  3. ブラウザは、次のエンティティの最初のバイトが到着するまで画面を消去しません。

ブラウザとサーバーがこのように動作すると仮定すると、MVCでは簡単な方法はありません。

  1. ActionResultから派生した新しいクラスを作成します。
  2. ActionResultのExecuteResult()メソッドで、出力をControllerContext.HttpContext.Responseに書き込みます。レスポンスコードを307に設定し、RedirectLocationを設定し、表示するコンテンツをOutputStreamに書き込みます。
関連する問題