ASP.NET Razor - C# 및 VB 코드 구문


Razor는 C#(C 샤프) 및 VB(Visual Basic)를 모두 지원합니다.


C#에 대한 기본 Razor 구문 규칙

  • Razor 코드 블록은 @{ ... }
  • 인라인 표현식(변수 및 함수)은 @로 시작합니다.
  • 코드 문은 세미콜론으로 끝납니다.
  • 변수는 var 키워드로 선언됩니다.
  • 문자열은 따옴표로 묶습니다.
  • C# 코드는 대소문자를 구분합니다.
  • C# 파일의 확장자는 .cshtml입니다.

C# 예제

<!-- Single statement block -->
@{ var myMessage = "Hello World"; }

<!-- Inline expression or variable -->
<p>The value of myMessage is: @myMessage</p>

<!-- Multi-statement block -->
@{
var greeting = "Welcome to our site!";
var weekDay = DateTime.Now.DayOfWeek;
var greetingMessage = greeting + " Here in Huston it is: " + weekDay;
}

<p>The greeting is: @greetingMessage</p>

VB용 주요 Razor 구문 규칙

  • Razor 코드 블록은 @Code ... End Code로 묶입니다.
  • 인라인 표현식(변수 및 함수)은 @로 시작합니다.
  • 변수는 Dim 키워드로 선언됩니다.
  • 문자열은 따옴표로 묶습니다.
  • VB 코드는 대소문자를 구분하지 않습니다.
  • VB 파일의 확장자는 .vbhtml입니다.

예시

<!-- Single statement block  --> 
@Code dim myMessage = "Hello World" End Code
 
<!-- Inline expression or variable --> 
<p>The value of myMessage is: @myMessage</p> 
 
<!-- Multi-statement block --> 
@Code
dim greeting = "Welcome to our site!" 
dim weekDay = DateTime.Now.DayOfWeek 
dim greetingMessage = greeting & " Here in Huston it is: " & weekDay
End Code


<p>The greeting is: @greetingMessage</p>


어떻게 작동합니까?

Razor는 웹 페이지에 서버 코드를 포함하기 위한 간단한 프로그래밍 구문입니다.

Razor 구문은 웹 응용 프로그램을 만들기 위해 특별히 설계된 Microsoft.NET Framework의 일부인 ASP.NET 프레임워크를 기반으로 합니다.  

Razor 구문은 ASP.NET의 모든 기능을 제공하지만 초보자인 경우 더 배우기 쉽고 전문가인 경우 생산성을 높이는 단순화된 구문을 사용합니다.

Razor 웹 페이지는 HTML 콘텐츠와 Razor 코드의 두 가지 콘텐츠가 있는 HTML 페이지로 설명할 수 있습니다.

서버가 페이지를 읽을 때 HTML 페이지를 브라우저로 보내기 전에 먼저 Razor 코드를 실행합니다. 서버에서 실행되는 코드는 브라우저에서 수행할 수 없는 작업(예: 서버 데이터베이스 액세스)을 수행할 수 있습니다. 서버 코드는 브라우저로 전송되기 전에 즉시 동적 HTML 콘텐츠를 생성할 수 있습니다. 브라우저에서 볼 때 서버 코드에서 생성된 HTML은 정적 HTML 콘텐츠와 다르지 않습니다.

Razor 구문이 있는 ASP.NET 웹 페이지에는 특수 파일 확장자가 cshtml(C#을 사용하는 Razor) 또는 vbhtml(VB를 사용하는 Razor)이 있습니다.


개체 작업

서버 코딩에는 종종 개체가 포함됩니다.

"DateTime" 개체는 일반적인 기본 제공 ASP.NET 개체이지만 개체는 자체 정의, 웹 페이지, 텍스트 상자, 파일, 데이터베이스 레코드 등 이 될 수도 있습니다.

개체에는 수행할 수 있는 메서드가 있을 수 있습니다. 데이터베이스 레코드에는 "Save" 메서드가 있고, 이미지 개체에는 "Rotate" 메서드가 있고, 전자 메일 개체에는 "Send" 메서드가 있을 수 있습니다.

또한 개체에는 해당 특성을 설명하는 속성이 있습니다. 데이터베이스 레코드에는 FirstName 및 LastName 속성이 있을 수 있습니다.

ASP.NET DateTime 개체에는 Now 속성(DateTime.Now로 작성)이 있고 Now 속성에는 Day 속성(DateTime.Now.Day로 작성)이 있습니다. 아래 예는 DateTime 객체의 일부 속성에 액세스하는 방법을 보여줍니다.

예시

<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>The message is @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 = " + total;
    }
}

<html>
<body style="background-color: beige; font-family: Verdana, Arial;">
<form action="" method="post">
<p><label for="text1">First Number:</label><br>
<input type="text" name="text1" /></p>
<p><label for="text2">Second Number:</label><br>
<input type="text" name="text2" /></p>
<p><input type="submit" value=" Add " /></p>
</form>
<p>@totalMessage</p>
</body>
</html>