ASP.NET Razor - C# と VB コード構文


Razor は C# (C sharp) と VB (Visual Basic) の両方をサポートしています。


Razor C# の主な構文規則

  • 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>

运行实例 »


Razor VB の主な構文規則

  • 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 構文は ASP.NET フレームワークに基づいており、Webアプリケーションを作成するための Microsoft .NET フレームワークの一部です。

Razor 構文は ASP.NET のすべての機能をサポートしていますが、簡略化された構文を使用しており、初心者には学習しやすく、専門家にはより効率的です。

Razor ウェブページは、次の2種類のコンテンツを含む HTML ページとして説明できます: HTML コンテンツと Razor コード。

サーバーがページを読み取るとき、最初に Razor コードを実行し、その後 HTML ページをブラウザーに送信します。サーバー上で実行されるコードは、ブラウザーでは実行できないタスクを実行できます。たとえば、サーバーデータベースへのアクセスなどです。サーバーコードは動的な HTML コンテンツを作成し、ブラウザーに送信できます。ブラウザーから見ると、サーバーコードによって生成された HTML は静的 HTML コンテンツと変わりません。

Razor 構文を使用する ASP.NET ページには、特別なファイル拡張子 cshtml(Razor C#)または vbhtml(Razor VB)があります。


使用するオブジェクト

サーバーコードはしばしばオブジェクトを伴います。

"Date" オブジェクトは典型的な組み込みの ASP.NET オブジェクトですが、オブジェクトはカスタム定義されたもの、ウェブページ、テキストボックス、ファイル、データベースレコードなどにもなり得ます。

オブジェクトには、実行するためのメソッドがあります。データベースレコードには "Save" メソッドがあるかもしれません。画像オブジェクトには "Rotate" メソッド、電子メールオブジェクトには "Send" メソッドなどがあるかもしれません。
オブジェクトには、それぞれの特性を説明するためのプロパティもあります。データベースレコードには 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>The message is @txt</p>
</body>
</html>

运行实例 »


ユーザー入力の読み取り

動的ウェブページのもう1つの重要な特徴は、ユーザー入力を読み取れることです。

入力は 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>

运行实例 »

其他扩展