0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ASP.NET学習のまとめ(2)Controllerの操作や処理その他

Last updated at Posted at 2021-07-02

次はModelに続いて、Controllerでの大まかな操作など学んだことをまとめてみた。
なお、Entity Frameworkを使用している前提で書く。
※いろいろ触ってみて気づいたことや認識に違いがあれば、都度修正していく予定。

全体の特徴

○クラス名は「Controller」クラスを継承している。 ○クラスを作成する際に「Entity Frameworkを使用した、ビューがあるMVCコントローラー」を指定して作ると、CRUD操作のメソッドがデフォルトでクラスの中に自動で作成される。 ○クラス内のどこでも参照できるインスタンスとして、DBのデータを読み込むコンテキストクラスが定義してある。 ○ログイン認証前でも操作できるようにするには、[AllowAnonymous]アノテーションをクラスの1行上に記載する。 ○ログイン認証後のみ、操作できるようにするには、[Authorize]アノテーションをクラスの1行上に記載する。

CRUD操作を扱うメソッドの中身

CREATE

○Http経由でのみ処理させるために、[HttpPost]アノテーションがメソッドの1行上に書かれている。 ○引数で、Bindメソッドが使われており、Includeプロパティに結びつける引数が指定されている (これをすることで、POSTアクションでデータが渡ってきたときに、そのデータの中のプロパティとそのPOSTアクションの引数に自動的に結びつけてくれる)。 ○「ModelState.IsValid」はPOSTの処理が走ったときに、渡ってきたデータが正常どうかを判定している。 これがtrueだと
db.(テーブル名).Add(引数); // 引数をDBに追加
db.SaveChange(); // 変更内容を反映させる
RedirectToAction(); // 処理が成功した後に遷移したいページに遷移

falseだと、

View(引数)

の記載があるだけ。

READ

View(db.(クラス名).ToList())

DBに登録されているテーブルをただ返すだけ。

UPDATE

(表示) UPDATEのページを表示する際に、UPDATEするデータを取得する必要があるので、
db.(クラス名).Find(id)

で該当データを検索する。

検索したデータがあれば、

View(引数)

で該当データがViewメソッドでUPDATEするデータを表示するViewページに渡される。

なければ、HttpNotFound()でエラーが返される。

(処理)
処理の流れは基本的にCREATEと同じ。

DELETE

(表示) DELETEのページを表示する際に、DELETEするデータを取得する必要があるので、
db.(クラス名).Find(id)

で該当データを検索する。

検索したデータがあれば、

View(引数)

で該当データがViewメソッドでUPDATEするデータを表示するViewページに渡される。

なければ、HttpNotFound()でエラーが返される。

(処理)

db.(クラス名).Find(id)

で該当データを検索した後に、

db.(クラス名).Remove(id); // 該当データをDBから削除
db.SaveChange();  // 変更内容を反映させる
RedirectToAction(); // 処理が成功した後に遷移したいページに遷移

という流れになっている。

参考記事

https://www.atmarkit.co.jp/fdotnet/aspnetmvc3/aspnetmvc3_04/aspnetmvc3_04_01.html

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?