ASP.NET Razor - C# と VB コード文法
- 前のページ Razor 入門
- 次のページ Razor C# 変数
RazorはC#(Cシャープ)およびVB(Visual Basic)の両方をサポートしています。
C#の主要なRazor文法規則
- Razorコードは@{ ... }で包装されます
- 行内式(変数や関数)は@で始まります
- コードステートメントはセミコロンで終わります
- 文字列は引用符で囲まれています
- 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の主要なRazor文法規則
- Razorコードブロックは@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>
インスタンスを実行
どう動作しますか?
Razorは、ウェブページにサーバーサイドコードを埋め込むためのシンプルなプログラミング文法です。
Razor 语法はASP.NETフレームワークに基づいており、このフレームワークは、マイクロソフトの.NETフレームワークの一部で、特にWebアプリケーションの開発にデザインされたものです。
Razor 语法は、ASP.NETのすべての機能を提供しますが、シンプルな文法を使用しているため、初心者でも簡単に学びやすく、専門家でも生産性を高めるのに役立ちます。
Razor ページは、HTML コンテンツと Razor コードの両方を持つ HTML ページとして説明できます。
サーバーがこのようなページを読み取った後、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>
インスタンスを実行
ユーザーの入力を読み取る
ダイナミックウェブページの重要な特性の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>
インスタンスを実行
- 前のページ Razor 入門
- 次のページ Razor C# 変数