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.プロパティ名でプロパティにアクセス可能。
GETコマンドでリクエストされると、まず~.cshtml.csのインスタンスが生成されます。このときコンストラクタが実行されます。
そのあとOnGet()メソッドが実行されます。
Listクラスを使うには、変数を宣言し、インスタンス生成を行う必要があります。
なお、POSTコマンドでリクエストされたときは、OnGet()メソッドのかわりにOnPost()メソッドが実行されます。
|
| 図 コンストラクタとOnGet()の実行順 |
Listクラス
Listクラスは配列のように複数のデータをまとめたものです。
配列と違って、宣言時に要素数を指定する必要がありません。
|
| 図 Listクラス |
①宣言
Listクラス型の変数を宣言します。
List<要素の型> 変数名;
このとき、<>内にListに格納する要素の型を指定します。
②インスタンス生成
newでインスタンス生成します。
変数名 = new List<要素の型>();
Add()メソッドで追加します。
変数名.Add(追加する要素);
|
| 図 要素を追加 |
④要素にアクセス
Listから順に要素を取り出すにはforech()が便利です。
|
| 図 foreachコードブロック |
Index.cshtml.cs
要素がstring型のListクラス型のプロパティItemListを用意。
コンストラクタでListクラスのインスタンス生成。さらに要素("うどん"、"そば"、"ラーメン")を追加。
OnGet()メソッドでさらに要素("きつねうどん"、"カレーうどん")を追加。
Index.cshtml
foreachコードブロックでItemListプロパティの要素を順に取り出し。
じかいは
DB検索結果を表示します。










