記事詳細


投稿日
2025年11月13日23時56分
タイトル

ViewBag に格納されたデータを 型変換(キャスト) して取り出すコード

内容

コードの意味

Csharp
var list = ViewBag.KamokuList as List<Kamoku>;
  • ViewBag.KamokuList
    → Controller 側でセットされたデータ(例:科目リスト)

  • as List<Kamoku>
    → 安全な型変換as 演算子)で List<Kamoku> 型に変換

    • 成功 → list に List<Kamoku> が入る
    • 失敗 → list に null が入る(例外は発生しない)
  • var list
    → 変数 list の型は List<Kamoku>(または null)になる

3. Controller 側の例

Csharp
public ActionResult Index() { var kamokuList = new List<Kamoku> { new Kamoku { Id = 1, Name = "数学" }, new Kamoku { Id = 2, Name = "英語" } }; ViewBag.KamokuList = kamokuList; // ViewBag に格納 return View(); }

4. View 側の例(Razor)

Csharp
@{ var list = ViewBag.KamokuList as List<Kamoku>; } @if (list != null) { <ul> @foreach (var item in list) { <li>@item.Name</li> } </ul> } else { <p>科目リストがありません。</p> }

5. as と (List<Kamoku>) の違い

  • as
    → 型変換に失敗すると null を返す(例外なし)
  • (List<Kamoku>)
    → 型変換に失敗すると InvalidCastException が発生

✅ ポイント

  • ViewBag は型安全ではないため、キャスト時に as を使うと安全
  • ただし、null チェックを忘れないこと
  • 型安全にしたい場合は ViewModel を使うのがベスト

Powered by Froala Editor

添付画像

画像はありません
Genreのカテゴリ-名
Views
編集 | 記事一覧