[解決済み] ASP.NET MVCのViewBagのしくみ
2023-01-02 10:48:55
質問
ASP.NET MVCの
ViewBag
はどのように機能するのでしょうか。MSDN によると、これは単なる
Object
のようなプロパティはどのように動作するのでしょうか?
ViewBag.Foo
やマジックストリング
ViewBag["Hello"]
は実際に機能するのか?
また、どのように作ってASP.NET WebFormsアプリで使用することができますか?
例は本当にありがたいです!
どのように解決するのですか?
ViewBag
は、タイプ
dynamic
型ですが、内部的には
System.Dynamic.ExpandoObject()
というように宣言されています。
dynamic ViewBag = new System.Dynamic.ExpandoObject();
ということで、:
ViewBag.Foo = "Bar";
エクスパンダーのオブジェクトコードの例です。
public class ExpanderObject : DynamicObject, IDynamicMetaObjectProvider
{
public Dictionary<string, object> objectDictionary;
public ExpanderObject()
{
objectDictionary = new Dictionary<string, object>();
}
public override bool TryGetMember(GetMemberBinder binder, out object result)
{
object val;
if (objectDictionary.TryGetValue(binder.Name, out val))
{
result = val;
return true;
}
result = null;
return false;
}
public override bool TrySetMember(SetMemberBinder binder, object value)
{
try
{
objectDictionary[binder.Name] = value;
return true;
}
catch (Exception ex)
{
return false;
}
}
}
関連
-
[解決済み] Microsoft JSONの日付はどのようにフォーマットするのですか?
-
[解決済み] ASP.NET WebサイトとASP.NET Webアプリケーションのどちらを選ぶか?
-
[解決済み] ファイルアップロード ASP.NET MVC 3.0
-
[解決済み] ASP.NET MVC Frameworkで複数のサブミットボタンを処理する方法は?
-
[解決済み] ASP.NET MVCでenumからドロップダウンリストを作成するにはどうすればよいですか?
-
[解決済み] ASP.NET MVC - カスタムIIdentityまたはIPrincipalの設定
-
[解決済み] ASP.NET MVCでビューをコンパイルする
-
[解決済み] ASP.Net MVCのmodelStateからすべてのエラーを取得する方法は?
-
[解決済み] ASP.NET MVCコントローラは、Imageを返すことができますか?
-
[解決済み】ASP.NET MVCでファイルを表示/ダウンロードに戻す場合
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
NET6新機能 - 暗黙の名前空間参照
-
ASP.NET Core ディペンデンシーインジェクションの詳細
-
ASP.NET学習でよくあるエラーのまとめ
-
再起動を伴わないNET5の設定変更は自動的に反映される
-
[解決済み] Server Error in '/' Application」エラーの解決方法を教えてください。
-
[解決済み] Server.MapPath("."), Server.MapPath("~"), Server.MapPath(@"\"), Server.MapPath("/"). この違いは何ですか?
-
[解決済み] ViewDataとViewBagの違いは何ですか?
-
[解決済み] カタナ」と「オウイン」をわかりやすく説明すると?
-
[解決済み] WatiNかSeleniumか?[クローズド]
-
[解決済み] ASP.NET_SessionId + OWIN Cookieがブラウザに送信されない。