VisualStuidioCommunity2015/Fw4.5.2/C#
前回に続いてRazorの構文を見ていきます。
「@using」で名前空間をインポート
Razorは標準でだいたいの名前空間をインポートしてくれますが、インポートされない名前空間は「@using」でインポートすることができます。@using MyApp.MyExtensions; @{ bool ret = string.Empty.MyExtensionMethod(); }
「@if」コードブロックで条件分岐
コードブロック内ではifを使用できますが、コードブロック外でifを使用したい場合は「@if」コードブロックを使用します。@{ int num = new System.Random().Next(1, 10); } @if (num % 2 == 0) { @:偶数 } else { @:奇数 }
「@switch」コードブロックで条件分岐
@switch (num) { case 2: @: numは2です。 break; default: @: numは2以外です。 break; }
「@for」コードブロックで繰り返し処理
@{ int max = 10; } @for (int i = 0; i < max; i++) {@i
}
「@foreach」コードブロックで繰り返し処理
@{ int[] nums = { 2, 4, 6 }; } @foreach (int val in nums) {@val
}
「@while」コードブロックで繰り返し処理
@{ int counter = 1; } @while (counter < 10 ) {@counter
counter++; }
「@functions」コードブロックでメソッドやプロパティを定義
「@functions」コードブロック内ではメソッドやプロパティを定義できます。@functions { // メソッド定義 bool isEven(int num) { bool ret = false; if (num % 2 == 0) { ret = true; } return ret; } //プロパティ定義 string _str = "Hello"; String Str { get { return _str + " World"; } set { _str = value; } } }通常のコードブロック内でメソッドを定義したければ、匿名メソッド使えばよさそうです。8は偶数:@isEven(8)
プロパティの値:@_str / @Str
@{ Func<int, bool> isOdd = (val) => { bool ret = false; if (num % 2 != 0) { ret = true; } return ret; }; }8は奇数:@isOdd(8)
条件付きナゲット (ASP.NET MVC5 以降)
コードナゲットを属性に使用すると、式が「trueである」又は「nullでない」場合にのみ属性が生成されます。たとえば下記の例であれば、
式「styleRed」はnullではないので、style属性は出力されます。
式「styleNull」はnullなので、style属性自体が出力されません。
@{ string styleRed = "color:red"; }実行してソースの表示で出力されたHTMLを確認した結果です。style = color:red
@{ string styleNull = null; }style = null
style = color:red
style = null
0 件のコメント:
コメントを投稿