ViewBag란 무엇인가?
ViewBag은 C# 4.0에서 도입된 dynamic(동적) 기능을 활용하는 개체입니다. 이 기능을 사용하면 개체에 속성을 동적으로 추가할 수 있습니다. 내부적으로 ViewBag은 Controller 클래스의 기반 클래스인 ControllerBase 클래스가 가진 dynamic 타입의 속성입니다.
ViewBag은 데이터를 컨트롤러(Controller)에서 뷰(View)로 전달하는 용도로만 사용할 수 있으며, 그 반대 방향의 전달은 지원하지 않습니다. 또한 리다이렉션이 발생하면 ViewBag의 값은 null이 됩니다. ViewBag은 값을 동적으로 설정하고 가져올 수 있으며, 강력한 형식(strongly typed)으로 변환하지 않고도 원하는 수만큼 추가 필드를 자유롭게 넣을 수 있다는 장점이 있습니다.
ViewBag에 데이터 저장하기
ViewBag.Countries = countriesList;
ViewBag에서 데이터 읽어오기
string country = ViewBag.Countries;
컨트롤러(Controller) 예제
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();
}
}
}뷰(View) 예제
@{
ViewBag.Title = "Countries List";
}
<h2>Countries List</h2>
<ul>
@foreach(string country in ViewBag.Countries){
<li>@country</li>
}
</ul>실행 결과
