razor

6068 ワード

1.Razorの概要


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

2.文法


C#の主なRazor構文規則:Razorコードは@{...}にカプセル化されているを選択して設定できます.行内式(変数と関数)は@で始まる.コード文はセミコロンで終わる.文字列は引用符で囲まれています.C#コードは大文字と小文字に敏感である.C#ファイルの拡張子は.cshtml
    @for (int i = 0; i < 10; i++) {
  • @i
  • }

C#インスタンス:

@{ var myMessage =    "Hello World"; }


The value of myMessage is: @myMessage

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

The greeting is: @greetingMessage


3.相手と付き合う


「Date」オブジェクトは典型的なASPである.NETはオブジェクトを内蔵しますが、オブジェクト、Webページ、テキストボックス、ファイル、データベースレコードなどを自分で定義することもできます.
Name
Value
Day
@DateTime.Now.Day
Hour
@DateTime.Now.Hour
Minute
@DateTime.Now.Minute
Second
@DateTime.Now.Second

4.変数


変数名はアルファベットで始まる必要があります.スペースと予約文字は含まれません.varキーワードまたはタイプを使用して変数を宣言するが、ASP.NETは通常、データの種類を自動的に特定することができる.
//    var    :
var greeting = "Welcome to W3School";
var counter = 103;
var today = DateTime.Today;

//    data   :
string greeting = "Welcome to W3School";
int counter = 103;
DateTime today = DateTime.Today;

データ型:
                           
int                     103, 12, 5168
float                  3.14, 3.4e38
decimal                 1037.196543
bool                   true, false
string                "Hello W3School", "Bill"

変換データ型:
Asシリーズの拡張方法とIsシリーズの拡張方法
  • AsInt(), IsInt()
  • AsBool(),IsBool()
  • AsFloat(),IsFloat()
  • AsDecimal(),IsDecimal()
  • AsDateTime(),IsDateTime()
  • ToString()
  • @{
        var i = "10";
    }
    

    i = @i.AsInt()


    5.ユーザ入力の読み出し


    Request[]関数で入力を読み込み、IsPost条件でテストします.
    @{
    var totalMessage = "";
    if(IsPost)
        {
        var num1 = Request["text1"];
        var num2 = Request["text2"];
        var total = num1.AsInt() + num2.AsInt();
        totalMessage = "Total = " + total;
        }
    }
    
    
    



    @totalMessage


    6.If,else if,else

    @{var price=25;}
    
    
    @if (price>=30)
      {
      

    The price is high.

    } else if (price>20 && price<30) {

    The price is OK.

    } else {

    The price is low.

    }

    demo:
     @if (Model != null)
        {
             if (Order>=10)
               {
                    if (Order.name)
                    {
                        
    @for (int i = 0; i < count; i++) {
    @if (count != 1) { @(i + 1): } else { }
    }
    } } else if (Order>5&&Order<10) {
  • ¥@Order.price
  • } else { ... } }

    7.Switch条件

    @{
    var weekday=DateTime.Now.DayOfWeek;
    var day=weekday.ToString();
    var message="";
    }
    
    
    @switch(day)
    {
    case "Monday":
        message="This is the first weekday.";
        break;
    case "Thursday":
        message="Only one day before weekend.";
        break;
    case "Friday":
        message="Tomorrow is weekend!";
        break;
    default:
        message="Today is " + day;
        break;
    }
    

    @message


    8.ループ


    forループ:
    
    
    @for(var i = 10; i < 21; i++)
        {

    Line @i

    }

    forEachサイクル:
    
    
    
      @foreach (var x in Request.ServerVariables) {
    • @x
    • }

    whileサイクル:
    
    
    @{
    var i = 0;
    while (i < 5)
        {
        i += 1;
        

    Line #@i

    } }

    9.コンテンツの開始を@で明確に表す

    lists

      @foreach(var p in lists){
    • @p.listName @if(p.listCount == 0){ @:(no Left!) }
    • }

    メッセージがなければHTMLタグ要素にネストされている場合、Razorは@ifブロックの内容が1つのコンテンツブロックの開始であるか否かを暗黙的に判断できない.我々は「@:文字シーケンス」を用いて,我々のコードセグメント内のこの行がコンテンツブロックと見なすべきであることを明確に指摘した.html以外のラベルとRazor以外の文のコードを出力する場合は、@:を使用します.彼の役割はhtmlの下で書くのと同じです.@:後に@を加えるとRazor文を表す変数になります.
    @{
        var str = "abc";
        //     :this is a mail:[email protected], this is var: abc,this is mail@str,this is @;
        @: this is a mail:[email protected], this is var: @str,this is  mail@str,this is @@;
        //    abc
        @str
    }
    

    10.Razorブロックコメント


    razor作用ブロック自体がサーバコードであるため、サーバコードの注釈を使用することができ、注釈は//と/*/がそれぞれ単行注釈と複数行注釈である.またrazorコメントは、独自の@コメントの内容*@を使用して、単行や複数行をサポートすることもできます.
    @{
       @*
               
               
       *@
       var i = 10;  @* asdfasf *@
    }