7月21日(火)1、2コマ目
今日、やったこと
- ~.cshtmlと~.cshtml.cs間でのデータ受け渡し
- OnGet()、OnPost()
今日のホワイトボード
今までは~.cshtmlだけ
Razorページを追加すると
- ~.cshtml
- ~.cshtml.cs
のペアが追加される。が、今までは~.cshtmlで
- コードブロック
- コードナゲット
- ディレクティブ
を使っただけだった。
~.cshtml.csもある
~.cshtmlはHTML+C#のイメージ。
~.cshtml.csは普通のC#のクラス。
HTTPのGETコマンドやPOSTコマンドに対する処理を書くことができる。
~.cshtml.csから~.cshtmlにデータを渡す
①~.cshtml.csにはプロパティを用意する
②~.cshtmlでは Model.プロパティ名 で取得できる
~.cshtml.csのインスタンスライフサイクル
クライアントからのリクエストごとにインスタンスが生成される。
以外と重要なので、覚えておいてください。
リクエストごとにインスタンスが生成されるため、プロパティの値もリクエストごとに変わる。(前のリクエストの状態を維持することができない!!)
よって、プロパティに表示データの初期値をセットするのはコンストラクタがいい。
submitボタンとOnPost()
submitボタンをクリックする(POSTコマンド送信)と、選択値や入力値を送信できる。
これらのデータを取得してなにか処理をしたい場合、~.cshtml.csのOnPost()メソッドを使う。
ポイント1 name属性 = 引数名
HTMLのname属性と同じ名前の引数に選択値、入力値が代入される。
ポイント2 ~.cshtmlに@AddTagHelper追加
以下を追加すること。
@AddTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
自作クラスを使う
~.cshtmlや~.cshtml.csと自作クラスは名前空間が異なる。
| 自作クラス | デフォルトの名前空間はプロジェクト名 |
|---|---|
| ~.cshtml、~.cshtml.cs | デフォルトの名前空間はプロジェクト名.Pages |
~.cshtml
以下を追加すること。
@using プロジェクト名








コメント