asp.NetMVC Razor構文(1)

5008 ワード

Razorはプログラミング言語ではありません.サーバ側タグ言語です.

Razorとは?


Razorは、サーバベースのコード(Visual BasicおよびC#)をWebページに埋め込むためのタグ構文です.
Webページがブラウザに書き込まれると、サーバのコードに基づいて動的コンテンツを作成できます.Webページのロード時に、サーバはブラウザにページを返す前に、ページ内のサーバベースコードを実行します.サーバ上で実行されるため、このコードはデータベースへのアクセスなどの複雑なタスクを実行できます.
RazorはASPに基づく.NETは、Webアプリケーションの作成のために設計されています.従来のASPを持っていますNETタグの能力は、使いやすく、勉強しやすい.
コードの例:
<ul>

@for (int i = 0; i < 10; i++) {

<li>@i</li>

}

</ul>


 

C#の主なRazor構文規則

  • Razorコードは@{...}にカプセル化されている中
  • 行内式(変数と関数)は@で始まる
  • コード文はセミコロンで終わる
  • 文字列は、引用符で囲まれた
  • 文字列です.
  • C#コード大文字小文字に敏感
  • C#ファイルの拡張子は.cshtml
  • C#   
    
    <!--       -->
    
    @{ var myMessage =    "Hello World"; }
    
    
    
    <!--          -->
    
    <p>The value of myMessage is: @myMessage</p> 
    
    
    
    <!--         -->
    
    @{
    
    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は、Webページにサーバ側コードを埋め込むための簡単なプログラミング構文です.
    Razor構文はASPに基づく.NETフレームワーク、このフレームワークはマイクロソフトです.NETフレームワークは特にwebアプリケーション開発のために設計された構成部分である.
    Razor構文はすべてのASPを与えます.NETの能力は、簡略化された文法を使用していますが、初心者であれば勉強しやすく、専門家であれば生産性の向上に役立ちます.
    Razorウェブページは、HTMLコンテンツとRazorコードの2つのコンテンツを有するHTMLページとして記述することができる.
    サーバがこのページを読み込むと、HTMLページをブラウザに送信する前にRazorコードが最初に実行されます.これらのサーバで実行されるコードは、ブラウザでは実行できないタスク、例えばサーバデータベースへのアクセスを完了します.サーバコードは、ページがブラウザに送信される前に動的なHTMLコンテンツを作成することができる.ブラウザから見ると,サーバコードによって生成されるHTMLは静的HTMLコンテンツと変わらない.
    Razor構文を使用するASP.NETページには、特殊なファイル拡張子cshtml(C#のRazor構文を使用)またはvbhtml(VBのRazorを使用)があります.
     

    相手とつきあう


    サーバコードは、オブジェクトに関連することが多い.
    「Date」オブジェクトは典型的なASPである.NETはオブジェクトを内蔵しますが、オブジェクト、Webページ、テキストボックス、ファイル、データベースレコードなどを自分で定義することもできます.
    オブジェクトは実行可能なメソッドを持つことができます.データベース・レコードには、「保存」メソッドがあり、画像オブジェクトには「回転」メソッドがあり、電子メール・オブジェクトには「送信」メソッドがあります.
    オブジェクトには、その特徴を記述するプロパティもあります.データベースレコードには、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条件


    動的Webページの重要な特性は、条件に基づいて実行される動作を決定することである.
    これを実現する一般的な方法は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>
    
    

     

    ユーザー入力の読み込み


    動的Webページのもう一つの重要な特性は、ユーザーの入力を読み取ることです.
    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>