Models 폴더에 클래스 파일인 User.cs 하나 만들고
prop + tab + tab을 이용해 getter/setter를 손 쉽게 만들 수 있다.
namespace AspNetCoreStudy2.Models
{
public class User
{
// 사용자 번호
public int UserNo { get; set; }
// 사용자 이름
public string UserName { get; set; }
}
}
using AspNetCoreStudy2.Models;
using Microsoft.AspNetCore.Mvc;
using System.Diagnostics;
namespace AspNetCoreStudy2.Controllers
{
public class HomeController : Controller
{
private readonly ILogger<HomeController> _logger;
public HomeController(ILogger<HomeController> logger)
{
_logger = logger;
}
public IActionResult Index()
{
//var firstUser = new User();
//firstUser.UserNo = 1;
//firstUser.UserName = "홍길동";
var hongUser = new User
{
UserNo = 1,
UserName = "홍길동"
};
// # 1번쨰 방식
//return View(hongUser);
// # 2번쨰 방식 ViewBag
//ViewBag.User = hongUser;
// # 3번쨰 방식 ViewData
ViewData["UserNo"] = hongUser.UserNo;
ViewData["UserName"] = hongUser.UserName;
return View();
}
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
public IActionResult Error()
{
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
}
}
View로 넘겨주는 방법은 세 가지 방법이 있다.
// # 1번쨰 방식
//return View(hongUser);
// # 2번쨰 방식 ViewBag
//ViewBag.User = hongUser;
// # 3번쨰 방식 ViewData
ViewData["UserNo"] = hongUser.UserNo;
ViewData["UserName"] = hongUser.UserName;
return View();
방식에 따라 View에서 다르게 받는다!
@{
ViewData["Title"] = "Home Page";
}
<div class="text-center">
<h1 class="display-4">Welcome</h1>
@* 1.
<h1>사용자 번호 : @Model.UserNo</h1>
<h1>사용자 이름 : @Model.UserName</h1>
*@
@* 2.
<h2>사용자 번호 : @ViewBag.User.UserNo</h2>
<h2>사용자 이름 : @ViewBag.User.UserName</h2>
*@
//3.
<h3>사용자 번호 : @ViewData["UserNo"]</h3>
<h3>사용자 이름 : @ViewData["UserName"]</h3>
</div>