1月20日(金)1、2コマ目

今日、やったこと

  • コードブロック
  • ~.cshtml.csのプロパティにアクセスする
  • Listクラス

今日のホワイトボード

コードブロック

前回はforコードブロックを使ったが、for以外にもifやwhile、switchなどがあります。

また、forコードブロック内にforやifを使う場合は、@をつけてください。

図 コードブロックのネスト


練習

コードブロックを使っていろいろと作ってもらいました。

練習1

背景色は各<td>タグにbg_green、bg_blueクラスを指定します。

bg_greenクラス(セレクタ:.bg_green)には背景色(項目名:background)が緑色(設定値:#00ff00)になるように<style>タグにて指定します。

bg_blueクラス(セレクタ:.bg_blue)には背景色(項目名:background)が緑色(設定値:#0000ff)になるように<style>タグにて指定します。

図 練習1

<td>タグにbg_green、bg_blueクラスを指定する際、3項演算子を使うと、"に注意してください。HTMLでは"は'(シングルクオーテーション)で代用できます。

図 "と'を使い分ける

練習2

背景色は練習1と同じようにクラスを使います。

図 練習2

練習1、練習2 正解例

正解例をあげておきます。


~.cshtml.csを使う

~.cshtml.csはC#のクラスです。以下の特徴があります。

  • ~.cshtml.csのプロパティは~.cshtmlからアクセスすることができます
  • ~.cshtml.csのOnGet()メソッドはGETコマンドでリクエストされたときに実行される
  • ~.cshtml.csのOnPost()メソッドはPOSTコマンドでリクエストされたときに実行される

図 ~.cshtmlと~.cshtml.cs

~.cshtmlから~.cshtml.csのプロパティにアクセスする

[~.cshtml.cs]

プロパティを用意する。

[~.cshtml]

Model.プロパティ名でプロパティにアクセス可能。

図 ~.cshtmlから~.cshtml.csのプロパティにアクセスする

コンストラクタ、OnGet()メソッドの実行順

GETコマンドでリクエストされると、まず~.cshtml.csのインスタンスが生成されます。このときコンストラクタが実行されます。
そのあとOnGet()メソッドが実行されます。

なお、POSTコマンドでリクエストされたときは、OnGet()メソッドのかわりにOnPost()メソッドが実行されます。

図 コンストラクタとOnGet()の実行順

Listクラス

Listクラスは配列のように複数のデータをまとめたものです。

配列と違って、宣言時に要素数を指定する必要がありません。

図 Listクラス
Listクラスを使うには、変数を宣言し、インスタンス生成を行う必要があります。
①宣言
Listクラス型の変数を宣言します。
 List<要素の型> 変数名;
このとき、<>内にListに格納する要素の型を指定します。

②インスタンス生成
newでインスタンス生成します。
 変数名 = new List<要素の型>();
宣言したListクラス型の変数が参照できるように参照情報を代入します。
図 宣言、インスタンス生成

③要素を追加
Add()メソッドで追加します。
 変数名.Add(追加する要素);
図 要素を追加

④要素にアクセス
Listから順に要素を取り出すにはforech()が便利です。
図 foreachコードブロック
※foreachはRazorページのコードブロックだけでなく、C#でも同じように使えます。

Index.cshtml.cs

要素がstring型のListクラス型のプロパティItemListを用意。
コンストラクタでListクラスのインスタンス生成。さらに要素("うどん"、"そば"、"ラーメン")を追加。
OnGet()メソッドでさらに要素("きつねうどん"、"カレーうどん")を追加。

Index.cshtml

foreachコードブロックでItemListプロパティの要素を順に取り出し。


じかいは

DB検索結果を表示します。



このブログの人気の投稿

10月3日(木)1コマ目

10月27日(木)1コマ目

10月14日(金)1、2コマ目