작성일 : 11-11-29 13:26
|
[.NET] Razor 강좌 [ SQLer]
|
|
|
글쓴이 :
조형래
 조회 : 3,599
|
http://www.sqler.com/196724 [3083] |
주석
Routing은 Global.asax 에 정의가 되어 있습니다.
layout 페이지에 jquery를 추가해줘야 한다.
--------------
(3) Razor 강좌 - 기본 구문 및 주석 처리
<h2>인라인 표현식</h2>
@* 인라인 표현식(Inline Expression) 사용 - 한줄 코멘트 *@
<p> 오늘은 @DateTime.Now 입니다.</p>
<h2>함수 호출</h2>
오늘은 @DateTime.DaysInMonth(2010, 5) 일 입니다.
<h2>Razor가 실행되는 웹서버의 정보 표시</h2>
@ServerInfo.GetHtml()
<h2>C# 스타일의 전체 괄호 처리 - ";"으로 종료</h2>
@*
이렇게 여러줄 주석 가능
여러 라인이 주석 처리됨
*@
@{
// 코드 블록 안에서 이렇게 한줄 주석도 가능합니다.
/*
코드 블록 안에서 여러줄의 주석은
이렇게 처리합니다.
*/
var showToday = true;
if(showToday)
{
@DateTime.UtcNow;
}
else
{
@DateTime.Now;
}
}
// Razor 구문 코드 블록 안에 자유롭게 HTML을 끼워 넣을 수 있음
<h2>HTML 조합 반복문</h2>
@{
<ul>
@foreach (string item in Request.ServerVariables)
{
<li>@item</li>
}
</ul>
}
----------- .cshtml ------------
(4) Razor 강좌 - 코드 블록과 POST 처리
@{
var total = 0;
var RequestQueryString = Request["param"];
//HTML의 Form에서 POST될 경우에만 실행
if(IsPost) {
// 사용자의 입력값을 받아서 저장
var num1 = Request["text1"];
var num2 = Request["text2"];
// 넘겨받은 값을 Integer 형으로 변환 후 더하기 수행
total = num1.AsInt() + num2.AsInt();
}
}
<form action="" method="post">
<p>
<label for="text1">숫자(1):</label>
<input type="text" name="text1" />
</p>
<p>
<label for="text2">숫자(2):</label>
<input type="text" name="text2" />
</p>
<p>
<input type="submit" value="더하기" />
</p>
</form>
@* 더한 값이 아래 표시 됩니다. *@
<h2>두 숫자의 합은: @total 입니다.</h2>
<h2>Request로 넘어온 문자열은 : @RequestQueryString 입니다.</h2>
-----------
(5) Razor 강좌 - 재사용 가능한 코드 생성
보시면, 중간에 보이시지요? @RenderPage("_header.cshtml")
이렇게 @RenderPage를 이용해 파일을 해당 영역으로 불러와 합칠 수 있습니다. - include 구문 처리라고 보시면 됩니다.
-----------
(6) Razor 강좌 - 레이아웃 페이지 구조 처리 [http://www.sqler.com/239935] 에서 볼것
레이아웃 페이지(Layout page) 방식
재사용을 위한 RenderPage 방식보다 레이아웃 방식을 대규모의, 디자인과 협업이 더 많이 필요할 경우에 주로 사용하게 됩니다.
1) 사용자가 Content Page를 요청합니다.
2) Content Page는 레이아웃 페이지의 링크를 담고 있습니다.
3) 레이아웃 페이지가 호출되며 레이아웃 페이지 내부에서 Content Page가 렌더링 됩니다.
4) 레이아웃 페이지에서 다른 페이지 역시 호출해(include) 재사용 가능합니다.
5) 사용자에게 모든 렌더링된 레이아웃 페이지가 전달됩니다.
1) 사용자의 요청으로 Content1.cshtml 파일이 실행되면 Layout1.cshtml 페이지를 호출합니다.
2) Layout 페이지에서 Header 영역을 불러와 include 시키고 바로 아래에서 Content 페이지의 내용을 RenderBody로 호출합니다.
3) 만들어진 콘텐트가 담긴 레이아웃 페이지가 사용자에게 CSS 디자인 파일과 함께 전달됩니다.
1) 사용자의 요청이 콘텐트 페이지에 도착하면 레이아웃 페이지가 호출됩니다.
2) 레이아웃 페이지의 RenderSection은 콘텐트 페이지의 지정된 Section을 쏙쏙 가져와 표시합니다.
3) RenderBody와 혼용도 가능합니다.
4) 사용자에게 콘텐트가 입혀진 레이아웃 페이지가 전달됩니다.
PS. cshtml 파일 앞에 “_”가 붙은 녀석은 사용자의 요청에 의해 실행 불가한 파일입니다. 다른 콘텐트 페이지 같은 “_”가 없는
녀석들에 의해 참조되어 호출만 가능한 녀석이지요. 레이아웃 페이지나 항상 참조 되는 header, footer 페이지에 쓰면 유용하겠지
요? 참고 하시길 바랍니다.
-----------
(7) Razor 강좌 - 파일처리, 파일 업로드
(8) Razor 강좌 - 데이터베이스 처리
(9) Razor 강좌 - Helper 소개(이미지, 비디오)
(10) Razor 강좌 – 디버깅
(11) Razor 강좌 - 캐시 처리
(12) Razor 강좌 – SMTP 메일전송(Live메일과 Gmail지원. SSL지원)
(13) Razor 강좌 – 웹사이트 전체, 또는 폴더 내 파일 요청 시 항상 실행 되는 모듈
(14) Razor 강좌 - URL 라우팅(Routing) 으로 SEO 최적화 구현
|
|