ViewBag는 C# 4.0에 도입된 동적 기능을 사용합니다. 객체에 동적으로 추가된 속성을 가질 수 있습니다. 내부적으로는 Controller 클래스의 기본 클래스인 ControllerBase 클래스의 동적 typeproperty입니다.
ViewBag는 컨트롤러에서 보기로 데이터만 전송하며 그 반대로는 전송하지 않습니다. 리디렉션이 발생하면 ViewBag 값이 null이 됩니다. ViewBag는 값을 동적으로 설정하고 가져올 수 있으며 강력한 형식으로 변환하지 않고도 추가 필드를 원하는 수만큼 추가할 수 있습니다.
ViewBag에 데이터 저장 -
ViewBag.Counties = countriesList;
ViewBag에서 데이터 검색 -
string country = ViewBag.Countries;
컨트롤러
예
using System.Collections.Generic; using System.Web.Mvc; namespace DemoMvcApplication.Controllers{ public class HomeController : Controller{ public ViewResult Index(){ ViewBag.Countries = new List<string>{ "India", "Malaysia", "Dubai", "USA", "UK" }; return View(); } } }
보기
@{ ViewBag.Title = "Countries List"; } <h2>Countries List</h2> <ul> @foreach(string country in ViewBag.Countries){ <li>@country</li> } </ul>
출력