본문 바로가기

카테고리 없음

Razor- ViewBag

 ViewBag이란?

  • 컨트롤러 → 뷰로 데이터 전달할 때 사용하는 dynamic 객체
  • 타입 지정 없이 .속성이름으로 자유롭게 설정 가능

 사용법


 특징

  • 타입: dynamic (컴파일 시 타입 체크 X)
  • 선언: ViewBag.속성 = 값
  • 사용: @ViewBag.속성
  • Razor에서 바로 사용 가능

ViewBag vs ViewData vs Model

항목  ViewBag  ViewData  Model
타입 dynamic Dictionary<string, object> 강력한 타입 (class/DTO)
선언 ViewBag.Name ViewData["Name"] Model.Name
장점 코드 짧고 편함 오래된 방식과 호환 IntelliSense, 타입 안정성
단점 오타 잡기 어려움 문자열 키라 실수 가능 ViewModel 필요

 사용 추천 상황

  • 간단한 값 전달 (예: 페이지 제목, 메시지)
  • 임시 데이터 처리
  • 복잡한 구조가 아닐 때만

 주의

  • ViewBag은 동적이라 오타 나도 런타임에서 에러
  • 실무에선 복잡한 구조일수록 ViewModel 쓰는 게 안정적