問題タブ [tempdata]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - リダイレクトで Asp.Net MVC TempData を使用する場合、「競合状態」が発生する可能性はありますか?
TempData を使用する場合、私の理解では、1 回の要求に対してのみ入力した内容が保持されます。したがって、(Post-Request-Get パターンを使用するために) リダイレクト全体でデータを保持するために TempData を使用する場合、リダイレクトを送信する応答とリダイレクト先のページを要求しているユーザーのブラウザ? その場合、get で TempData が使用できなくなりますよね?
今、そのようなことが起こることは非常にまれであることを理解していますが、ユーザーが別のタブで別のページを開いている可能性があり、そのページで ajax または時限コールバック要求が発生している可能性があることを考慮すると、突然発生しません私にはまったく不可能に思えます。一般的に、遠すぎて心配できないと考えられているのでしょうか、それとも私が何か誤解しているのでしょうか?
編集:私が尋ねていたシナリオについてより具体的にするために。
- タブ 1 で、ユーザーは投稿フォームのあるページを参照します
- タブ 2 では、タイマーで ajax コールバックを実行するサイトの別のページにユーザーがブラウザーでアクセスします。
- タブ 1 では、ユーザーがフォームをサーバーに投稿します。
- サーバーが投稿を受信すると、TempData にデータを保存し、リダイレクト応答を返します。
- タブ 2 では、時間指定された ajax コールバックが発生し、サーバーに GET リクエストが送信されます。TempData がセッションから削除されます
- タブ 1 では、ブラウザーがリダイレクトを受け取り、GET 要求を発行します。
- サーバーは GET 要求を処理し、TempData を探しますが、もうありません。
asp.net-mvc - asp.net MVCで使用されるTempDataコレクションは何ですか?
asp.net MVCでのTempDataコレクションの実際の使用法は何ですか。そのコレクションの長所と短所、いつ使用する必要があるか、どのビューで共有されるか、またはそれに関する有用な情報が必要です。 ViewData ではなくいつ使用するか教えてください。
前もって感謝します
ViewDataとTempDataの違いの正確な複製としてCLOSED ?
asp.net-mvc - ASP.NET MVC - TempData - 良い習慣と悪い習慣
AcceptVerbs
ASP.NET MVC でフォーム エントリを処理するために、Scott Gu のプレビュー 5 ブログ投稿に詳述されている方法を使用しています。
- ユーザーは GET 経由で空のフォームを取得します
- ユーザーは、入力したフォームを POST 経由で同じアクションに投稿します。
- アクションはデータを検証し、適切なアクションを実行して、新しいビューにリダイレクトします
だから私は使用する必要はありませんTempData
。とはいえ、このプロセスに「確認」ステップを追加する必要があり、TempData
.
何らかの理由で、私は使用することに嫌悪感を抱いていますTempData
-それは設計されたものです。
これはまったく有効な懸念ですか、それとも私がでっち上げですか?
asp.net-mvc - ASP.NETTempDataはリクエスト間で保持されます
私はコントローラーで次のように一時データを使用しています-問題がある場合は非常に簡単です:
次に、すべてのページで、次のようなユーザーコントロールがあります。
問題は、tempdataにエラーを追加すると、最初のリクエストで正しく表示されますが、次のリクエストでも再び表示されることです。これは明らかに非常に紛らわしく、望ましい動作ではありません。
私はIoCを使用していません。それを使用したときに、同じ問題のある投稿が表示されました。
asp.net-mvc - ASP.NET MVCでセッション状態を無効にするにはどうすればよいですか?
非常に軽量なASP.NETMVCサイトが必要です。これには、通常のHttpModuleをできるだけ多く削除し、セッション状態を無効にすることが含まれます。ただし、これを実行しようとすると、次のエラーが発生します。
The SessionStateTempDataProvider requires SessionState to be enabled.
web.configでセッション状態を無効にしました:
ASP.NET MVCがTempDataにセッション状態を使用することは理解していますが、TempDataは必要ありません。セッション状態を無効にしたいだけです。ヘルプ!
asp.net-mvc - ASP.NET MVC : 複数の要求にわたって TempData を保持する
リダイレクトを実行するときに渡す必要がある値があります。これを実現するために TempData を使用したいのですが、問題が発生しました。
特別なコントローラーを使用して動的 JavaScript を生成します。たとえば、次のようなスクリプト タグがあるとします。
...しかし、スクリプトファイル「Login.js」はありません。代わりに、ResourceController のスクリプト アクションが呼び出されます。
問題は、これが次のリクエストを食い尽くすことです。つまり、TempData を使用して動的スクリプトを含むページからリダイレクトすることはできません。スクリプト アクション (または ResourceController 全体) が TempData を消費しないことを選択して、次の「実際の」要求で使用できるようにする方法はありますか?
前もって感謝します!
c# - ASP.NET MVC:クロスアクションTempDataとViewDataを処理する方法
私は次のシナリオを処理するための良い方法を見つけようとしています(私はまだこれに少し慣れていません):
ユーザーは、RPX/OpenIdプロバイダーを使用して私のサイトから登録できます。
ステップ1:ユーザーはプロバイダーを介して認証します。プロバイダーは、アクションメソッドの1つに一時トークンを返します。
ステップ2:トークンを使用してユーザーのプロファイル情報を取得し、不足している必須フィールドとオプションフィールドを入力できるビューをロードします。
ステップ2では2つのアクションメソッドを使用します。1つはトークンを使用した情報の取得を処理するためのものです。許可情報を取得し、欠落/オプションのフィールドビューをロードする2番目のアクション。
TempDataを介して認証情報を2番目のアクションに渡します。2番目のアクションは検証を処理できるため、1つ以上のリクエストに対して承認オブジェクトを保持する必要がある可能性があります。技術的には1回限りのトークンであるため、トークンを使用して認証情報を再生成することはできません。また、ネットワークリソースを使用しているため、リクエストを再生成するのはばかげています。
同じアクションへの後続のリクエストのためにTempDataにオブジェクトを保持し、リダイレクトのためにオブジェクトを削除するにはどうすればよいですか?これは私のアプリケーションでは繰り返し可能なパターンである可能性があるため、この状況を自動的に処理するフィルターを作成する必要がありますか?
たとえば、TempData(存在する場合)をViewDataにマージするフィルター属性を想像します-しかし、同じアクションへの将来の呼び出しにデータを永続化するにはどうすればよいですか?もう一度TempDataにスローしますか?そして、リダイレクトが空であることを検出した場合、TempDataは空になりますか?
ありがとう
asp.net-mvc - TempData[] が消去される
TempData に整数を保存していますが、サイトを 30 ~ 60 秒間ブラウジングした後、不明な理由で定期的に消去されます。
値が設定されている場所にブレークポイントがあり、null に設定されることはありませんが、何らかの形で TempData の値が null になっています。
なぜこれが起こっているのですか?
asp.net-mvc - TempData が持続しない
ビューを返す前に TempData を設定するコントローラーがあります。
このビューには、削除と呼ばれる別のアクション メソッドに移動するリンクを含む部分ビューが含まれています。削除リンクのコードは次のとおりです。
削除アクション メソッドのコードは次のとおりです。
私が抱えている問題は、TempData["Route"]; を取得しようとするときです。削除アクション メソッドから null が返されます。
問題は、これが Post ではなく Get であるということでしょうか? もしそうなら、フォーム内から削除 ActionMethod に投稿するにはどうすればよいですか?
asp.net-mvc - ASP.NET MVC CookieTempDataProvider.DeserializeTempData が null を返す
RedirectToAction メソッドを使用して、CookieTempDataProvider を使用して、投稿 (エンティティ更新) と取得 (エンティティ リスト) の間で基本的なメッセージを渡しようとしています。デフォルトの TempData 実装を使用すると問題なく動作しますが、MVC Futures プロジェクトの Cookie ベースのバージョンを使用すると、リダイレクト後に TempData ディクショナリが空になります。これは、TempDataDictionary が DeserializeTempData メソッドから null として返されるためです。コードのどの行で問題が発生しているかを正確に把握しており、修正方法も知っていますが、この問題を抱えているのが私だけだとは信じられません。
間違ったバージョンの MVC Futures プロジェクトを使用している可能性がありますが、ASP.NET MVC v1.0 ソースをダウンロードしたところ、そこに間違いなく問題が存在します。他の誰かが CookieTempDataProvider を使用していますか?
私が見たように、CookieTempDataProvider クラスの問題は 62 行目にあり、デシリアライズされたオブジェクトを IDictionary<string, object> ではなく TempDataDictionary としてキャストしています。この変更を行うと、すべてが完全に機能します。
他の誰かがこの問題を見ていますか、それとも私だけですか?