반응형
ASP.NET 기반으로 웹 개발 시, Controller에서 뷰로 데이터를 전달하는 방법이 여러가지가 있다. 각 속성/클래스에 대한 특징은 이후에 더 자세히 다루고 여기서는 간단한 예제 및 방법만 확인한다.
1. ViewData 이용
// 컨트롤러
public IActionResult testDataView() {
// 1. ViewData 이용 - 딕셔너리 구조
ViewData["myMsg"] = "Hello reponse";
ViewData["num1"] = 100;
return View();
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Test</title>
</head>
<body>
@ViewData["num1"]
<br/>
@ViewData["myMsg"]
<br/>
</body>
</html>
2. ViewBag 이용
// 컨트롤러
public IActionResult testDataView() {
// 2. ViewBag 이용 - 동적으로 속성 추가 가능
ViewBag.MyTest = "hello myTest";
ViewBag.num2 = 200;
ViewBag.arr = new List<string>{"abc", "def"};
return View();
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Test</title>
</head>
<body>
@ViewBag.MyTest
<br/>
@ViewBag.num2
<br/>
<ul>
@foreach(var data in ViewBag.arr) {
<li>@data</li>
}
</ul>
</body>
</html>
3. ViewModel 이용
// 컨트롤러
public IActionResult testDataView() {
// 3. ViewModel 이용 - return View 파라미터에 넘겨줘야 함
var numList = new List<int>{1, 2, 3};
return View(numList);
}
@model List<int>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Test</title>
</head>
<body>
<ul>
@foreach(var data in Model) {
<li>@data</li>
}
</ul>
<p>모델 count: @Model.Count</p>
</body>
</html>
728x90
반응형
'Backend 개발 > .NET' 카테고리의 다른 글
ASP.NET Master Page(혹은 Layout) (0) | 2025.06.05 |
---|---|
ASP.NET [ViewData, ViewBag, ViewModel] 비교 (0) | 2025.05.26 |
ASP.NET MVC Razor View란? (0) | 2025.05.21 |
ASP.NET MVC Controller View 렌더링 방법 (0) | 2025.05.14 |
ASP.NET MVC 쿼리 스트링 값 가져오는 방법 (0) | 2025.05.13 |