問題タブ [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-mvc-4 - MVC4 Controller のテキスト ボックスから View に ActionLink と TempData を使用してデータを送信する
TempData を ActionLink で利用して、View から Controller にデータを渡す方法はありますか。クライアント側の検証を行うビューがあり、送信ボタンを使用せずにページのテキスト ボックスからドロップダウン リストを更新する必要があります。2 つの送信タイプ ボタンを使用すると、クライアント側の検証によって、入力されていないすべてのフィールドにフラグが立てられます。基本的には、テキスト ボックスだけのために別のビューにジャンプすることなく、ユーザー定義のカテゴリをドロップダウン リストに追加できるようにしたいと考えています。そして送信ボタン。
次のようなことができるかどうかはわかりませんでした:
私はそれをうまく機能させることができませんでした...
景色:
コントローラ セクション:
これを機能させる方法またはもう少しエレガントなものを作成する方法についての提案は大歓迎です。
asp.net-mvc-3 - Session / TempData の長期使用と競合
デフォルトの「処理中」セッションを使用する MVC3 Web アプリがあります。PRG パターンを配置しました。つまり、モデル状態が無効な場合のポストバック中に、モデルを TempData に保存し、元の get アクションにリダイレクトします。get アクションでは、モデル データ (存在する場合) をフェッチし、ビューに送信します。これは MVC の基本的な側面の 1 つだと思います。
バックグラウンドの TempData は、PRG 遷移で使用されるセッション変数であることを知りました。私が知る必要があるのは、2 つのページで TempData["model"] のようなものを使用し、ページに同時にアクセスする場合、競合または相互参照が可能かどうかです。TempData["model"] の共通データを上書きしますか、それとも 2 つの異なるページで同じ tempdata 名を使用しても安全ですか。
また、Session["model"] の種類のデータと競合しますか? 予期しないセッション データの破損に直面しています。おそらく、セッション データをリセットする内部コードまたはその他の原因が原因です。セッション データが部分的に破損する可能性はありますか? つまり、Session["data1"] は問題ありませんが、Session["data2"] はなくなりましたか?
ユーザーが Web アプリを長時間使用することが多く、セッション タイムアウトが発生します。セッションの ASP.Net セッション状態サービスを試してみましたが、重いオブジェクトを (シリアル化によって) セッションに保存するため、パフォーマンスの問題が発生しました。最終的に、proces モードで元のデフォルトに戻りました。
同様の経験をしたことがある場合は、共有してください。
asp.net-mvc - TempData や ViewData をサービスに渡すのは良い習慣ですか?
MVC コントローラーのサイズを縮小しようとして、多くのロジックをサービスにリファクタリングしています (ただし、モデルにファクタリングされている場合は、これと同じ問題が発生します)。次のように、ユーザーに表示したい情報を直接設定ViewData
したり、情報を使用したりすることがよくあります。TempData
もちろん、サービス クラスに移行するとすぐにViewData
、 、 、およびやTempData
などのメソッドに直接アクセスできなくなるため、これを処理するためのベスト プラクティスを見つけようとしています。2 つの解決策が思い浮かびます。View()
RedirectToAction()
次のような、サービスから返されるコントローラーの動作に関するさまざまな情報を含むクラスを作成します。
/li>ViewData
サービス メソッドがや などに直接アクセスできるようにしてみてくださいTempData
。...そしてコントローラで:
/li>
ResponseInfo
番号 1 の場合、コントローラーは、オブジェクトを見て、リダイレクトするかどうか、ビューを表示するかどうか、エラーまたは情報メッセージをTempData
orにプラグインするかどうかなどを決定するために、より多くのロジックを実行する必要がありますViewData
。番号 2 は、ワンライナー コントローラーをほとんど許可します。ただし、サービスにコントローラー固有のものを非常に認識させています。ただし、とにかくサービスは常にコントローラーと密接に結びついているので、これは問題ですか? 1つまたは2つがベストプラクティスでしょうか、それともリストにないものでしょうか?
javascript - mvc4のjavascriptのtempdataにアクセスします
JavascriptでTempDataにアクセスしようとしています。しかし、null値を取得します。レコードを更新するためにajax呼び出しを行っていますが、レコードが正常に更新されたというメッセージを表示したいと思います。これは、コントローラーからのUpdateOperationアクションから発生します。ただし、現在はnull値が表示されます。また、Firebugで次のように表示されることも確認します。
これが私のコントローラーのコードです
私からしてみれば
c# - ActionFilterAttribute 内での TempData の設定
OnActionExecuting
特定の基準に応じて、ユーザーをログアウトし、サイトのホームページにリダイレクトするカスタム アクション フィルターがあります。リダイレクト部分の(取り除かれた)コードは以下のとおりです
上記のように、tempData メッセージも設定しています。ユーザーはログアウトされているため、ホームページにアクセスすると、[Authorize]
属性によってログイン GET ページにリダイレクトされます。ログイン ビューで、tempData 内からのメッセージを表示しています。ただし、この状況では tempData は空です。
これは、ログイン POST の動作と非常によく似た動作です (無効な場合、ホームにリダイレクトされ、ログインにリダイレクトされ、ログイン ポストで設定された tempData メッセージが表示されます)。このコードは以下で見ることができます
ログインページに具体的にリダイレクトするのではなく、この方法で行っている理由は、このコードが多くのサイトに分散されているため、ログイン GET URL が何であるかがわからないためです。
これがログイン POST では機能するが、ActionFilter リダイレクトでは機能しない理由について、誰かが情報を持っていますか?
編集:
カスタム アクション フィルター内でログアウト呼び出しを削除すると、tempData は引き続きホーム アクション内に設定されますが、ログイン POST では機能するがアクション フィルターでは機能しない理由が説明されていませんか?
asp.net-mvc - MVC アプリケーションで TempData をトレースするには?
configでトレースを有効にし、実行中のセッションで「trace.axd」ページにアクセスすることで、ASP.NETアプリケーションでセッションデータをトレースできることを私は知っています。今、ASP.NET MVC アプリケーションで TempData をトレースしたいので、"trace.axd" を試しましたが、セッションにオブジェクトがあるにもかかわらず、"Session State" セクションが空で表示されます。TempData は基盤となるアーキテクチャで Session を使用していると思いますので、trace.axd に表示する必要がありますが、表示されていないため、tempdata をどのようにトレースすればよいでしょうか?
asp.net-mvc - Chrome での TempData の問題、IE と Firefox では問題なく動作する
以下は、私のアプリケーションの正確なシナリオです。
- コントローラー アクションで GUID を生成します。
- GUID は TempData に格納されます。
- そのコントローラー アクションから開かれるカミソリ ビュー (MyView.cshtml) で、ViewModel と共に GUID を渡します。
ビューには、GUID にバインドされた隠しフィールドがあります。
/li>TempData の GUID 値を含む Json 結果を返す別のコントローラー アクションがあります。
/li>MyView.cshtmlに次のjqueryを書きました
$.get('@Url.Action("GetGuid", "Controller")', function (result) {
問題は、IE と Firefox では問題なく動作しますが、TempData と HiddenField の GUID が常に異なるため、毎回「無効な識別子」というメッセージが表示されることです。
その理由は何ですか?この動作が Chrome で異なる可能性があるのはなぜですか?
c# - int は null ですが、TempData はそうではありませんか?
2 つのアクション結果間でデータを渡す必要があるので、試してみようと思いましTempData
た (MVC は初めてなので、ご容赦ください)。これは私が試したことです:
これで一時データが保存されます。そしてそれを取得するには:
ここに問題があります。companies.BolagsID
値がtest
ありますが、常に null です。なんで?どうすれば修正できますか?
編集:
かなり興味深いことに気付きました。ダリン・ディミトロフの提案を試すとき、そしておそらく私の試みも行うとき、ヌル値を返す行にのみブレークポイントを配置すると、次の行までブレークしません。その行がコメントアウトされていて、まったく実行されていないかのように。トワイライトゾーンへようこそ。
EDIT2:
テイク 2:
と:
「現在のコンテキストにはテストが存在しません」というメッセージが表示されます。
EDIT3:
Take 2 で問題なく動作します。私の変数はnull
、どこでも使用したことがないため、宣言されていました。私は一度に 1 つずつ実行すると思っていましたが、明らかに、場合によっては、それらのいずれかが機能することを確認するためにいくつかの手順を実行する必要があります。
教訓: 宣言された変数を必ず使用してくださいnull
。
asp.net-mvc - TempData の使用を避ける方法
私はasp.net mvcが初めてなので、ご容赦ください。
別のアクションにリダイレクトするときに TempData を使用していますが、URL を情報で「ダーティ」にしたくありません。例えば:
これまでのところ、ユーザーは自分のユーザー名を含むメッセージを含むシンプルで無害な Web ページを取得しています。ただし、ユーザーが「更新」ボタンを押すと、TempDate が利用できないため、「エラー」ビューが表示されます。クエリ文字列に表示されていない情報を使用してアクションにリダイレクトする機能と、ユーザーが更新ボタンを押すと同じページが表示されるようにしたいと考えています。これを行う方法はありますか?(セッションなし)
ありがとうございました。