⚠WARNING
ASP.NET에 대한 포스팅이 아닙니다
나가실 문은 오른쪽 하단입니다
나가실 문은 오른쪽 하단입니다
전편에 이어 이번에는 파라미터 대한 자료를 찾아보았다.
이미지처럼 View구조 자체는 다른 서버 페이지와 별반 차이가 없다.
제대로 알려면 교과서라도 하나 구해서 조목조목 알아봐야 하지만 웹의 프레임워크 자체는 10년 전이나 지금이나 크게 다르지 않다. SPA라는 것으로 패러다임 자체는 조금 변했지만, 전통적인 웹에서도 비동기 통신을 이용하여 간간이 이용했던 방법이다.
...
컨트롤러에서 넘겨주는 파라미터.
Request, Response 객체 이외에
구현에 필요한 파라미터는 4가지다
- Model
- ViewData
- ViewBag
- TempData
1. Model
@model List<string>
@foreach(var str in Model){
<p>str</p>
}
타입 캐스팅 어차피 할 거, 깔끔한 방법을 고안한 듯하다.
컨트롤러에서 View를 호출시 파라미터로 넘기고 @model 구문으로 바로 쓸 수 있게 타입 캐스팅을 한다.
이때 사용되는 변수명은 Model 이 된다.
2. ViewData
@{
ViewData["Title"] = "Home Page";
}
딕션너리 형태로 사용된다.
3. ViewBag
@{
ViewBag.Title = "Home Page";
}
ExpendObject로 자바스크립트의 오브젝트처럼 사용 가능하다.
2번과 비교했을 때, 사용하기 편한 것을 이용하면 된다.
4. TempData
@{
TempData["cnt"] = TempData["cnt"] switch
{
int x => x + 1,
_ => 0
};
TempData.Keep();
@TempData["cnt"]
}
세션에 데이터를 유지한다는 목적을 가지고 있지만, 서버에 부담을 주지 않게끔 Keep() 함수를 호출하지 않으면 ViewData처럼 데이터가 날아간다.
위 코드는 새로고침을 할 때마다 cnt가 1씩 증가한다.
차후 예정
파라미터가 가지가지 있는것이 보니 많이 고민한 흔적이 보인다.
다음 내용으로는 페이지의 상속과 레이아웃에 대한 구조에 대해 포스팅 하도록 하겠다.
'C# > 근웹 연대기' 카테고리의 다른 글
c#으로 근본 없는 웹서버 개발기 21 : cshtml 파싱 - tokenize (0) | 2022.01.13 |
---|---|
c#으로 근본 없는 웹서버 개발기 20 : cshtml layout (이론) (0) | 2022.01.11 |
c#으로 근본 없는 웹서버 개발기 18 : cshtml 구문 분석(이론) (0) | 2022.01.08 |
c#으로 근본 없는 웹서버 개발기 17 : 서버페이지 렌더링 계획 (0) | 2022.01.07 |
c#으로 근본 없는 웹서버 개발기 16 : node express? (2) | 2022.01.05 |