投稿

10月, 2025の投稿を表示しています

10月27日(月)1コマ目

イメージ
今日、やったこと [練習問題 解説]練習問題5(ViewModelを使う) LINQ 今日のホワイトボード [練習問題 解説]練習問題5(ViewModelを使う) コントローラからビューにデータを渡す際、ViewDataではなく、ViewModelを使う。 ソースコードをあげておきます。 [モデル]Models/Maker.cs  製造メーカーマスタテーブル対応クラス。 [モデル]Models/Genre.cs  製造ジャンルマスタテーブル対応クラス。 [モデル]Models/Camera.cs  製品マスタテーブル対応クラス。 [モデル]Models/SearchViewModel.cs  ViewModelクラス。このクラスを使って、コントローラからビューにデータを渡すときは、このクラスを使う。 [コントローラ]Controllers/SearchController.cs コントローラからビューに渡すデータは、SearchViewModelクラスをつかっている。 [ビュー]Views/Search\Index.cshtml @model  でコントローラから渡されるViewModelの型を指定。 コントローラから渡されたViewModelは  Model  でアクセス可能。 LINQ LINQは、.Netでコレクションのデータを操作するためのライブラリ。 メソッド構文とSQLに似たクエリ構文がある。この授業では、クエリ構文を使う。 今まで使っていたEntityFrameworkCore+LINQでDBアクセスを行う。 サンプルプログラム DBアクセスに関する部分は今まで作ってきたMVCモデルのアプリケーションとほぼ同じ。 Webにするほどではないので、コンソールアプリで作成した。 パッケージのインストール 今までと同じように、"NuGetパッケージの管理"で以下の2つのパッケージをプロジェクトにインストール。 Microsoft.EntityFrameworkCore Oracle.EntityFrameworkCore [モデル]Group.cs ...

10月20日(月)1コマ目

イメージ
今日、やったこと ViewModelをつかう 今日のホワイトボード コントローラーからビューにデータを渡す方法 今までは ViewData を使っていた。 ViewDataは キーを間違えると実行時エラー キャストを間違えると実行時エラー のように、 実行時エラーが発生する可能性がある 。 ※実行しないとエラーかどうかがわからないのはやめたい 図 ViewDataの問題点 そこで、  ViewModel  を使う。 ViewModelはコントローラーからビューに渡すデータをひとまとめにできるクラス。 ビュー側では @model でビューモデルの型を指定する Model でビューモデルにアクセスできる 図 ViewModel 前回の検索アプリケーションから改造したファイルをあげておきます。 [モデル]Models/SearchViewModel.cs コントローラーからビューに渡すデータをまとめて扱うためのクラス。 [コントローラー]Controllers/SearchController.cs ビューモデル(SearchViewModelクラス)のインスタンスを、ビューに渡すには retuen View( model ) のように、引数で渡す。 [ビュー]Views/Search/Index.cshtml @modelでコントローラーから渡されるビューモデルの型を指定する。 Modelでビューモデルのインスタンスにアクセス可   練習問題のヒント 選択リストに 「選択してください」 を追加する。 図 選択リストに「選択してください」を追加 次回は 練習問題5の解説と新ネタLINQ。

10月6日(月)1コマ目

イメージ
今日、やったこと 検索サイト作成 今日のホワイトボード 前期のASP.NET Core MVCのおさらいをしつつ、新ネタ(POSTコマンド)もやりました。 検索サイト構築 前期のASP.NET Core MVCは、クライアントがサーバーにリクエストする際、 下図左のように、 GETコマンドでリクエスト リクエストするURLでサーバーのアクションメソッド呼び分け リクエストするURLのクエリパラメータ(パスパラメータ)でデータ送信  していた。 これを下図右のように、 POSTコマンドでリクエスト データはクエリパラメータではなく、ボディ部で送信 するように改造する。 図 ASP.NET Core MVCでこれから作るアプリケーション 下図のような、アプリケーションを作成する。 図 作成するサンプルアプリケーション Webフォーム <form></form>のなかに、選択リスト(<select>タグ)や入力、選択(<input>タグ)、ボタン(<button>タグ)を配置。 図 Webフォーム Webフォームは、ボタン(type=submit)をクリックすると、<form>タグの method属性で指定したHTTPのコマンドで action属性で指定したパスを リクエストする。 POSTコマンドでリクエストすると サーバー側は、まずコントローラが処理を行う。 このとき呼び出されるメソッドは、リクエストされるパスからコントローラ、メソッドが決まる。 さらに、POSTコマンドを処理するメソッドには、[HttpPost]アノテーションが付与されている必要がある。 ...