ASP.NET Razor Pagesのページモデル(PageModel)の役割を完全解説!初心者でも迷わず理解できる基礎ガイド
生徒
「ASP.NET Razor Pagesでよく出てくるPageModelって、何をするものなんですか?」
先生
「PageModelは、画面の裏側で処理をまとめて担当する重要な役割を持っています。」
生徒
「画面の裏側、というと難しそうです……」
先生
「大丈夫です。日常生活の例えを使いながら、順番に説明していきましょう。」
1. ASP.NET Razor Pagesとは何か
ASP.NET Razor Pagesは、ASP.NET Coreに含まれるWebアプリケーション開発の仕組みです。HTMLに近い見た目で画面を作りながら、C#で処理を書けるのが特徴です。プログラミング未経験者でも、画面と処理の関係を理解しやすい構造になっています。
Razor Pagesでは「1つの画面に1つの処理」を基本としており、この考え方を支えているのがページモデル(PageModel)です。
2. PageModelの基本的な役割
PageModelは、画面に表示するデータを準備したり、ボタンが押されたときの処理を担当します。例えるなら、レストランの「厨房」です。お客さん(画面)は料理を見るだけですが、実際の調理や準備は厨房で行われています。
画面(.cshtml)は見た目担当、PageModel(.cshtml.cs)は考える担当、と分けることで、プログラムが整理され、読みやすくなります。
3. PageModelファイルの構成を見てみよう
Razor Pagesでは、画面ファイルと同じ名前のPageModelが自動的に関連づけられます。以下は、基本的なPageModelの例です。
using Microsoft.AspNetCore.Mvc.RazorPages;
public class IndexModel : PageModel
{
public string Message { get; set; }
public void OnGet()
{
Message = "こんにちは、ASP.NET Razor Pages!";
}
}
このコードでは、画面を開いたときに実行される処理をOnGetメソッドに書いています。Messageという変数に文字を入れ、画面側で表示できます。
4. PageModelと画面(cshtml)のつながり
PageModelで用意したデータは、Razor構文を使って画面に表示します。次は対応する画面側の例です。
@page
@model IndexModel
<h3>@Model.Message</h3>
@Modelを使うことで、PageModelの中身にアクセスできます。これにより、処理と表示がきれいに分かれ、初心者でも理解しやすくなります。
5. PageModelで入力を受け取る仕組み
PageModelは、画面から送られたデータを受け取る役割も持っています。例えば、名前を入力して送信する場合です。
public class SampleModel : PageModel
{
[BindProperty]
public string Name { get; set; }
public void OnPost()
{
}
}
BindPropertyを使うことで、画面の入力内容が自動的にPageModelに入ります。難しい設定をしなくても、自然な流れで処理を書ける点が特徴です。
6. PageModelを使うメリット
PageModelを使う最大のメリットは、役割がはっきり分かれることです。見た目は画面、考える処理はPageModel、と分けることで、後から見直したときも理解しやすくなります。
また、エラーが起きたときに原因を探しやすく、修正もしやすくなります。これは、実際の開発現場でも非常に重要な考え方です。
7. PageModelは初心者の強い味方
ASP.NET Razor PagesのPageModelは、「画面の裏で何が起きているか」を整理して教えてくれる存在です。最初は難しく感じても、画面と処理を分けて考える癖が自然と身につきます。
プログラミング未経験者でも、日常生活の役割分担と同じ感覚で理解できるため、ASP.NET学習の最初の壁をやさしく乗り越えられます。