問題タブ [viewdata]
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用のASP.NET MVCのViewDataと同等ですか?
ASP.NET MVC for ASP.NET の ViewData/TempData オブジェクトに相当するものはありますか?
私がしたいのは、セッション アイテムを 1 つのリクエストに対してのみ有効にすることです。
前もって感謝します!
編集:
問題は、更新と作成のビューが 1 つしかないことです。ビューが更新モードの場合、セッション項目が満たされているか、すでに満たされている必要があり (!)、作成モードではセッション項目は null です。そのため、作成モードでページを送り返してモードを編集モードに変更すると、セッション項目が入力されたため、ビューのボタンが有効になります。モードはセッション項目によって異なります。また、セッション項目は、別のビューによって、または連絡先を正常に作成したときに入力できます。セッション アイテムの値は contactId です。
asp.net-mvc - 厳密に型指定されたページで Model と ViewData、および Html を呼び出せないのはなぜですか?
次のような新しい強い型指定された View を作成しました。
しかし、モード、Html、Viewdata を呼び出したとき、IntelliSense のヒントがありませんでした。理解できません。これを行う方法を教えてください。
asp.net-mvc - ViewData を HandleError ビューに渡すにはどうすればよいですか?
私の Site.Master ファイルには、3 つの単純な ViewData パラメーターがあります (ソリューション全体で 3 つだけです)。これらの ViewData 値は、アプリケーションのすべてのページにとって重要です。これらの値は Site.Master で使用されるため、OnActionExecuting メソッドをオーバーライドして、ソリューション内のすべてのコントローラーのすべての Action メソッドにこれらの値を入力する抽象 SiteController クラスを作成しました。
私が直面している問題は、HandleErrorAttribute が SiteController クラス レベルの属性から開始されたときに、これらの値が MyErrorView (および最終的には Site.Master) に渡されないことです。私の問題を示す簡単なシナリオを次に示します。
SiteController の OnException() メソッドもオーバーライドして ViewData パラメータを埋めようとしましたが、うまくいきませんでした。:(
この場合、ViewData パラメータを Site.Master に渡す最良の方法は何ですか?
c# - ベースコントローラから強く型付けされたビューデータを取り込む方法は?
すべてのコントローラーは BaseController に基づいており、それらの間でプロパティを共有し、OnActionExecuting をオーバーライドして、ルートに基づいていくつかの値を設定します。
すべてのビュー データに対して同じことを行う BaseViewData クラスを作成しています。
現時点では、ビュー データを次のように入力しています (C#):
ビューデータを必要とするすべてのアクションでこれを行います。一部のプロパティは一般的で、すべてのアクションで設定する必要があります。いくつかのプロパティをよりグローバルなスケールで設定する方法はありますか?
BaseController の OnActionExecuting メソッドで BaseViewData クラスをインスタンス化する場合、通常のコントローラー (BaseController から派生) のアクションから BaseViewData プロパティにアクセスするにはどうすればよいですか?
Dennis Palmer に応じて更新します。
一部のリクエストで ViewData["lang"] がランダムに入力されないという厄介な問題のために、私は基本的にこれを行っています。ViewData["lang"] には、言語が英語の場合は "en" が含まれ、日本語の場合は "ja" が含まれます (まあ、とにかくそうなるはずです)。BaseController の OnActionExecuting 内に ViewData["lang"] を入力します。
私の見解では、言語に基づいていくつかの部分ビューを呼び出します。
しかし、「/SiteMenu が見つかりません」という状態のエラーがランダムにスローされます。これは、ViewData["lang"] に値がないことを示しています。ViewData["lang"] が入力されない理由が見つかりません。そのため、強く型付けされたビュー データのみを使用するようにサイトを書き直しています (そして、いくつかのハード デフォルトを設定しています)。しかし、別の方法がより良い場合は、その方法を使用します。
ありがとうございました!
c# - BaseViewData クラスを BaseController クラスのプロパティにするのは悪い考えですか?
私のプロジェクトのすべてのコントローラー クラスは、適切に BaseController という名前の基本コントローラー クラスから派生しています。
すべてのビュー データは、BaseViewData という名前のクラスに含まれています (将来的には、より具体的なビュー データ クラスのベース コントローラーになる可能性があります)。
すべてのコントローラーが厳密に型指定されたベース ビュー データ内のデータにアクセスする必要があるため、BaseController に BaseViewData プロパティを作成しました (また、BaseController は BaseViewData プロパティの一部を事前設定するための作業を行います)。
私がこれを行った理由:
プロパティを変更した場合は、コンパイル時のエラー チェックを取得して、破損したコードをより迅速に解決します。
DRY を実践することで、以前は各コントローラーに散らばっていた ALOT のコードを統合することができました。
ただし、これを試みたのはこれが初めてです。そのため、醜い頭をもたげる準備をしている問題を見落としている可能性があります。そう:
BaseViewData クラスを BaseController クラスのプロパティにするのは悪い考えですか? もしそうなら、なぜですか?
更新 1:
私の BaseController は次のようになります (他にもありますが、これで要点がわかるはずです):
私の BaseViewData は次のようになります (繰り返しますが、他にもあります...):
c# - mvc ビューのドロップダウンリストに値を渡す
私はMVCプログラミングの初心者です。他の db テーブルから編集ビューに値を渡し、ビューを作成していくつかのドロップダウン リストに入力します。それはうまくいっています。編集と作成のためにコントローラーに次のようなコードがあります。
select ステートメントをリポジトリに移動して、少しすっきりさせて、編集と作成で同じ選択を繰り返さないようにしたいと考えています。
では、の戻り値Repository
の型はですか? 私はそれを機能させることができないようです。GetCustomers
SelectListItem
c# - ああ!System.Web.Mvc.HandleErrorInfoがビューに渡されるのはなぜですか?
私はかなり苛立たしい問題を経験しています。私のMVCサイトはほとんどの部分で正常に動作しますが、ランダムにエラーをスローします(これはユーザーにわかりやすいエラーを示します)。ログを確認すると、次のようになります。
しばらくすると、同じユーザーが更新を押してページが正常に読み込まれる可能性があります。私は立ち往生しています。;(
更新:スタックトレースを追加
asp.net-mvc - AuthorizeAttribute 拡張機能から ViewData[] コレクションに追加
アクション メソッドの AuthorizeAttribute をカスタマイズするための拡張クラスを作成しました。特定の条件が満たされたときにビューにメッセージを挿入できるようにしたいと考えています。ユーザーが承認されていないときに共有ビューをロードするために以下のコードを使用していますが、ViewData コレクションにメッセージを追加していません。何かアイデアはありますか?
ViewData["Message"] コレクション項目を呼び出しの上に設定して、ビューを変更しようとしましたが、成功しませんでした。
asp.net - ViewModel (WPF/Silverlight) と厳密に型指定された ViewData (ASp.NET MVC) を組み合わせますか?
注: 以下のテキストでは、WPF/Silverlight の ViewModel と ASP.Net MVC の厳密に型指定された ViewData の両方に「ViewModel」という用語を使用します。
ASP.Net MVC クライアントと WPF/Silverlight クライアントの両方を同じプロジェクト (つまり、同じ DataModel に対して) に作成したいのですが、共通の ViewModel プロジェクトを作成するか、クライアント テクノロジごとに個別の ViewModel を作成する必要がありますか?
共通の ViewModel が正しいことだと信じたいのですが、依存プロパティまたは JSON 文字列を作成する必要があるため、互換性がないように見えます。
おそらく別の解決策は、ViewModel の共通部分を DataModel レイヤーに入れることでしょうか?
私を正しい方向に導く助けに感謝します、ありがとう