問題タブ [viewbag]
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.
.net - ViewData と ViewBag の違いは何ですか?
MVC 3 でを見ました。MVC 2ViewBag
とどう違うのViewData
ですか?
asp.net-mvc - MVCでViewBagを使用するのは悪いですか?
mvc 3 チームはビューバッグと呼ばれるコントローラーとビューの間の動的データ交換のための機能を導入することを決定したようですが、それは私たちがよく知っている強く型付けされたビューに対して良いことですか? ViewBag
厳密に型指定されたビューを使用する場合と比較して、ビューを使用する場合のプラス面とマイナス面は何ですか?
asp.net-mvc-3 - MVCビューが機能するためにViewディレクトリに存在する必要があるのはなぜですか?
私は、ページを生成するためのメインエンジンとしてMVCを使用してcmsを作成しています。
私はうまくいっていますが、必要に応じて、サイトごとに、場合によってはビューごとに、独自のかみそりテンプレートを作成する機能が必要でした。
私のルールでは、各プロジェクトにはURLにリンクされた一意のコードが必要です。
各プロジェクトサイトのアセットは、場所がプロジェクトに関連する方法で保存されます。
したがって、プロジェクトC0001に関連付けられたアセットはassets\C0001\
、C0002に格納さassets\C0002\
れます。
私がやりたかったのは、物事を整頓するために、そのassets\[ProjectCode]
場所にあるプロジェクトに関連付けられたかみそりのテンプレートを用意することでしたが、問題は、に関するエラーが発生することViewBag not existing in context
です。
したがって、これは機能しません。
以下はページをレンダリングしますが、
最初のレイアウトは、ビューの既知の検索領域の外にあるため、レンダリングされないと思いますか?しかし、ファイルがどこにあるかを伝えているので、問題が何であるかわかりませんか?
例2のコードを使用して作業できてうれしいですが、かなりの数のプロジェクトサイトの後で、共有ビューディレクトリが非常にビジーになる可能性があります。
Views
ビューがディレクトリに存在する必要がある理由があるかどうか疑問に思っていますか?
dll - 「ViewBag」という名前は現在のコンテキストには存在しません
アプリケーションでViewBagを使用しようとしていますが、最新のdll、MVC 3の最新バージョンがすべてありますが、それでもエラーが発生します。
「「ViewBag」という名前は現在のコンテキストには存在しません」
MVC 3をアンインストールしてから再インストールしましたが、変更はありません。
また、dllがGACに表示されているとは思いません。
私の問題は何でしょうか?または、dllをGACに追加する方法は?
view - 部分ビューで MVC 3 ViewBag を変更しても、_Layout.cshtml に保持されない
Razor ビュー エンジンで MVC 3 を使用しています。部分ビュー内の ViewBag にいくつかの値を設定し、それらの値を _Layout.cshtml で取得したいと考えています。たとえば、既定の ASP.NET MVC 3 プロジェクトをセットアップすると、"/Views/Shared" フォルダーに _Layout.cshtml ファイルが作成されます。その _Layout.cshtml では、ページ タイトルは次のように設定されます。
次に、"/Views/Home/About.cshtml" ビューで、ViewBag の内容が変更されます。
これはうまくいきます。Aboutビューがレンダリングされると、ページのタイトルは「About Us」になります。そこで、About ビュー内で Partial ビューをレンダリングし、Partial ビュー内で ViewBag.Title を変更したいと考えています。("/Views/Shared/SomePartial.cshtml")
この部分ビューには、次のコードがあります。
このコードをデバッグすると、ViewBag.Title が「About Us」に設定され、部分ビューでは「About Us From The Partial View」にリセットされますが、コードが _Layout.cshtml にヒットすると、 「私たちについて」に戻ります。
これは、ViewBag のコンテンツが部分ビューで変更された場合、それらの変更はメイン ビュー (About.cshtml) または _Layout.cshtml に表示されない (アクセスできない) ということですか?
前もって感謝します!
vb.net - VB.NETのMVC3ViewBagでの遅延バインディングの問題
VB.NET MVC3プロジェクトでMVCスキャフォールディングを試していますが、Option Strictがオンに設定されている(そしてオンにしたい)遅延バインディングの問題が発生しています。
これはC#で機能します:
しかし、VB.NETの実質的に同じコード:
コンパイラエラーが発生します。OptionStrictOnは遅延バインディングを許可しません。http://msdn.microsoft.com/en-us/library/system.web.mvc.controllerbase.viewbag(VS.98).aspxのドキュメントを確認しましたが、あまり役に立ちませんでした。
C#の新しい空のアプリケーションはを使用しViewBag
ていますHomeController
が、VB.NETバージョンはを使用してViewData
いるので、これはVB.NETの制限である可能性があります。
asp.net-mvc-3 - ASP.NETMVC3モデルバインディング-ViewBag.Titleがid="Title"の入力と衝突します
ViewBagの動的プロパティに問題があるようです。私が持っているとしましょう:
そして、私が持っているページのフォームで:
Titleは、データベーステーブルのフィールドの名前です。
ページが最初に開いたとき、IDが「Title」のテキストボックスは、ViewBag.Title動的プロパティの値を取ります。
モデルバインディングの正確な詳細については少しぼんやりしていますが、これはバグのようです。そうでない場合は、バインディングプロセスの結果として自然に発生するものである場合は、警告が表示されると便利です。これ。
私が見つけた回避策は、ViewBagプロパティの名前を次のように変更することでした。
(タイトルがTituloに変更されました-名前の衝突を避けるために、常に別の言語を知っておくとよいでしょう...)
そして、問題は解決しました。
ただし、問題は次のとおりです。
この動作は予想されるものですか?バグは簡単に見つけることができましたが(この質問を書くことを含めて、それを理解するのに1時間かかりました)、他のバグの方がもっと多いのではないかと思います。
編集:
質問の言い換え:
モデルバインダーは、ViewBagで見つかったプロパティを自動的にバインドしますか?強く型付けされたViewModelに既存のプロパティが存在する場合でも、ページに渡しましたか?確かにViewModelが優先されるべきですか?
asp.net-mvc-3 - 文字列キーを使用して.NETMVCViewBagのプロパティにアクセスする方法はありますか?
私はViewBagに入れた値を持っています:
私の見解では、キーは文字列として保存されています。
この文字列バージョンのキーを使用して、Viewbagから自分の値にアクセスする方法はありますか?
.net - オブジェクトをバッグに入れたいのはなぜですか?
System.Collections.ConcurrentBag<T>
クラスに関するSOの質問を見たばかりで、ASP.NETMVCのViewBag
プロパティを見ましたController
。私の経験では、人々がコードを書く際に何をしているのかを正確に理解していれば、人々のコードを使用する方が簡単であることを学びました。List<T>
aまたはaDictionary<TKey,TValue>
またはaが何を表すのかについては、かなり直感的だと思いますReadOnlyCollection<T>
。一方、 ABag
はそれほど直感的ではありません。
だから、私の質問は次のとおりです。特に.NET Frameworkに関して、このメタファーは何を表すことを意味しますか?Bag