ASP.NET Razor - C# 과 VB 코드 문법
- 이전 페이지 Razor 개요
- 다음 페이지 Razor C# 변수
라자어는 C# (C sharp)과 VB (Visual Basic) 모두를 지원합니다.
C#의 주요 라자어 문법 규칙
- 라자어 코드는 @{ ... }로 감싸져 있습니다
- 행 내 표현식(변수와 함수)은 @로 시작합니다
- 코드 문장은 세미콜론으로 끝납니다
- 문자는 인용號로 감싸져 있습니다
- C# 코드는 대소문자를 구분합니다
- C# 파일의 확장자는 .cshtml입니다
C# 예제
<!-- 단一行 코드 블록 --> @{ var myMessage = "Hello World"; } <!-- 행 내 표현식 또는 변수 --> <p>myMessage의 값은: @myMessage</p> <!-- 여러 줄 문장 코드 블록 --> @{ var greeting = "Welcome to our site!"; var weekDay = DateTime.Now.DayOfWeek; var greetingMessage = greeting + " Here in Huston it is: " + weekDay; } <p>인사말은: @greetingMessage</p>
예제 실행
VB의 주요 라자어 문법 규칙
- 라자어 코드 블록은 @Code ... End Code로 감싸져 있습니다
- 행 내 표현식(변수와 함수)은 @로 시작합니다
- Dim 키워드로 변수를 선언합니다
- 문자는 인용號로 감싸져 있습니다
- VB는 대소문자를 구분하지 않습니다
- VB 파일의 확장자는 .vbhtml입니다
예제
<!-- 단一行 코드 블록 --> @Code dim myMessage = "Hello World" End Code <!-- 행 내 표현식 또는 변수 --> <p>myMessage의 값은: @myMessage</p> <!-- 여러 줄 문장 코드 블록 --> @Code dim greeting = "Welcome to our site!" dim weekDay = DateTime.Now.DayOfWeek dim greetingMessage = greeting & " Here in Huston it is: " & weekDay 코드 종료 <p>인사말은: @greetingMessage</p>
예제 실행
어떻게 작동하나요?
라자어는 웹 페이지에 서버 측 코드를 삽입하는 데 사용되는 간단한 프로그래밍 문법입니다.
라자어 문법은 ASP.NET 프레임워크를 기반으로 하며, 이 프레임워크는 마이크로소프트의 .NET 프레임워크가 특별히 웹 애플리케이션 개발을 위해 설계된 구성 요소입니다.
라자어 문법은 모든 ASP.NET의 기능을 제공하지만, 간단화된 문법을 사용하여 초보자라면 더 쉽게 배울 수 있으며, 전문가라면 생산성을 높이는 데 더 유리합니다.
Razor 웹 페이지는 두 가지 내용을 가진 HTML 페이지로 설명할 수 있습니다: HTML 내용과 Razor 코드.
서버가 이런 페이지를 읽은 후, HTML 페이지를 브라우저로 전송하기 전에 먼저 Razor 코드를 실행합니다. 이 서버에서 실행되는 코드는 브라우저에서 수행할 수 없는 작업을 완료할 수 있습니다. 예를 들어, 서버 데이터베이스에 접근합니다. 서버 코드는 페이지가 브라우저로 전송되기 전에 동적 HTML 내용을 생성할 수 있습니다. 브라우저의 관점에서 보면, 서버 코드로 생성된 HTML은 정적 HTML 내용과 구분이 안됩니다.
Razor 문법을 사용하는 ASP.NET 웹 페이지는 특수한 파일 확장자를 가집니다. cshtml(C#의 Razor 문법을 사용)이나 vbhtml(VB의 Razor 문법을 사용)입니다.
객체와의 상호작용
서버 코드는 일반적으로 객체와 관련이 있습니다.
"Date" 객체는ASP.NET 내장 객체이지만, 사용자 정의 객체를 정의할 수도 있습니다. 웹 페이지, 텍스트 박스, 파일, 데이터베이스 레코드 등입니다.
객체는 작업을 수행할 수 있는 메서드를 가질 수 있습니다. 데이터베이스 레코드는 "저장" 메서드를 제공할 수 있으며, 이미지 객체는 "회전" 메서드를 가질 수 있으며, 이메일 객체는 "보내기" 메서드를 제공할 수 있습니다. 이렇게 해서 계속됩니다.
객체는 그 특징을 설명하는 속성을 가질 수 있습니다. 데이터베이스 레코드는 FirstName과 LastName 속성을 가질 수 있습니다.
ASP.NET Date 객체는 Now 속성을 가지고 있습니다(Date.Now로 쓰입니다),Now 속성은 Day 속성을 가집니다(Date.Now.Day로 쓰입니다)。다음 예제는 Date 객체의 특정 속성에 접근하는 방법을 보여줍니다:
예제
<table border="1"> <tr> <th width="100px">Name</th> <td width="100px">Value</td> </tr> <tr> <td>Day</td><td>@DateTime.Now.Day</td> </tr> <tr> <td>Hour</td><td>@DateTime.Now.Hour</td> </tr> <tr> <td>Minute</td><td>@DateTime.Now.Minute</td> </tr> <tr> <td>Second</td><td>@DateTime.Now.Second</td> </tr> </td> </table>
예제 실행
If와 Else 조건
동적 웹 페이지의 중요한 특성은 조건에 따라 실행할 작업을 결정하는 것입니다。
이를 실현하는 일반적인 방법은 if ... else 문을 사용하는 것입니다:
예제
@{ var txt = ""; if(DateTime.Now.Hour > 12) {txt = "Good Evening";} else {txt = "Good Morning";} } <html> <body> <p>메시지는 @txt</p> </body> </html>
예제 실행
사용자 입력 읽기
동적 웹 페이지의 또 다른 중요한 특성은 사용자 입력을 읽는 것입니다.
Request[] 함수를 통해 입력을 읽고 IsPost 조건을 테스트합니다:
예제
@{ var totalMessage = ""; if(IsPost) { var num1 = Request["text1"]; var num2 = Request["text2"]; var total = num1.AsInt() + num2.AsInt(); totalMessage = "총 합 = " + total; } } <html> <body style="background-color: beige; font-family: Verdana, Arial;"> <form action="" method="post"> <p><label for="text1">첫 번째 숫자:</label><br> <input type="text" name="text1" /></p> <p><label for="text2">두 번째 숫자:</label><br> <input type="text" name="text2" /></p> <p><input type="submit" value=" 추가 " /></p> </form> <p>@totalMessage</p> </body> </html>
예제 실행
- 이전 페이지 Razor 개요
- 다음 페이지 Razor C# 변수