カテゴリ: ASP.NET 更新日: 2026/03/24

ASP.NET Razor Pagesのページハンドラーメソッド完全ガイド!OnGet・OnPostを初心者向けに解説

ページハンドラーメソッドの使い方(OnGet/OnPost)
ページハンドラーメソッドの使い方(OnGet/OnPost)

先生と生徒の会話形式で理解しよう

生徒

「ASP.NET Razor Pagesって、画面を表示したり、ボタンを押したりしたときの処理はどこに書くんですか?」

先生

「Razor Pagesでは、ページハンドラーメソッドという仕組みを使って処理を書きます。」

生徒

「ページハンドラーメソッドって難しそうな名前ですね……」

先生

「名前は難しそうですが、やっていることは『画面を開いたとき』『ボタンを押したとき』の処理を分けて書くだけですよ。」

生徒

「それなら少し安心しました!詳しく教えてください。」

1. ページハンドラーメソッドとは?

1. ページハンドラーメソッドとは?
1. ページハンドラーメソッドとは?

ASP.NET Razor Pagesのページハンドラーメソッドとは、Webページで起こる操作に応じて実行される処理のことです。たとえば「ページを開いたとき」「フォームを送信したとき」など、人の操作に反応して動きます。

現実の例でたとえると、インターホンを押したら音が鳴る、ドアを開けたら部屋が見える、というように行動に対して決まった反応を返す仕組みです。Razor Pagesでは、この反応を書く場所がページハンドラーメソッドになります。

2. OnGetメソッドの役割

2. OnGetメソッドの役割
2. OnGetメソッドの役割

OnGetメソッドは、ページが表示されるときに自動で呼び出される処理です。ブラウザでURLを開いた瞬間に実行されます。

これは「お店のドアを開けた瞬間に、店内が見える」ようなイメージです。特別な操作をしなくても、ページを表示するだけで実行されます。


public class IndexModel : PageModel
{
    public string Message { get; set; }

    public void OnGet()
    {
        Message = "ページを開きました";
    }
}

この例では、ページが表示されたときに、Messageという変数に文字を入れています。

3. RazorファイルでOnGetの結果を表示する

3. RazorファイルでOnGetの結果を表示する
3. RazorファイルでOnGetの結果を表示する

ページハンドラーメソッドで設定した値は、Razorファイル(.cshtml)で表示できます。これにより、画面と処理がつながります。


@page
@model IndexModel

<p>@Model.Message</p>

ここでは、Modelを通してC#の値を画面に表示しています。難しく感じるかもしれませんが、「裏側で用意した紙を、画面に見せている」くらいの感覚で大丈夫です。

4. OnPostメソッドの役割

4. OnPostメソッドの役割
4. OnPostメソッドの役割

OnPostメソッドは、ボタンを押したり、フォームを送信したときに実行される処理です。ユーザーのアクションに反応する点が特徴です。

これは「注文ボタンを押したら、厨房に注文が伝わる」ようなものです。何か操作をしたときだけ動きます。


public class IndexModel : PageModel
{
    public string Result { get; set; }

    public void OnPost()
    {
        Result = "ボタンが押されました";
    }
}

5. フォームとOnPostの基本的な関係

5. フォームとOnPostの基本的な関係
5. フォームとOnPostの基本的な関係

Razor Pagesでは、HTMLのフォームとOnPostメソッドが自然につながります。フォームの送信方法がPOSTの場合、自動的にOnPostが呼ばれます。


@page
@model IndexModel

<form method="post">
    <button type="submit">送信</button>
</form>

<p>@Model.Result</p>

ここでは、ボタンを押すだけでOnPostが実行され、結果が画面に表示されます。特別な設定を書かなくても動くのがRazor Pagesの特徴です。

6. OnGetとOnPostの使い分け

6. OnGetとOnPostの使い分け
6. OnGetとOnPostの使い分け

OnGetは「表示のため」、OnPostは「操作の結果を受け取るため」に使います。役割を分けることで、プログラムが読みやすくなります。

たとえるなら、OnGetは黒板に最初から書いてある内容、OnPostは生徒が質問したあとに先生が答えを書く部分です。

7. ページハンドラー名のルール

7. ページハンドラー名のルール
7. ページハンドラー名のルール

ページハンドラーメソッドは、OnGetOnPostという決まった名前を使います。このルールがあることで、ASP.NETが自動的に処理を判断します。

名前を間違えると呼ばれないため、「決まりごとを守ること」がとても大切です。

8. 初心者がつまずきやすいポイント

8. 初心者がつまずきやすいポイント
8. 初心者がつまずきやすいポイント

よくある失敗として、フォームのmethodがPOSTになっていない、OnPostを書いたのに動かない、というケースがあります。

まずは「ページを開いたらOnGet」「ボタンを押したらOnPost」と覚えるだけで十分です。細かい仕組みは、慣れてから理解しても問題ありません。

カテゴリの一覧へ
新着記事
New1
ASP.NET
ASP.NET MVCで学ぶセッションと認証の仕組みをやさしく解説!初心者でも安心して理解できる入門ガイド
New2
VB.NET
VB.NETで名前空間を整理する方法を完全ガイド!初心者でもわかるNamespaceの基本
New3
ASP.NET
ASP.NET CoreのCookie認証を完全ガイド!初心者でもわかるログインの仕組み
New4
VB.NET
VB.NETでStaticクラスを作る方法を完全ガイド!初心者でもわかるクラスとオブジェクト指向入門
人気記事
No.1
Java&Spring記事人気No1
VB.NET
VB.NETのインストール方法まとめ!Visual Studioを使った環境構築手順
No.2
Java&Spring記事人気No2
VB.NET
VB.NETプログラムの書き方を基礎から学ぼう!初心者が覚えるべき文法とは?
No.3
Java&Spring記事人気No3
VB.NET
VB.NETのDateTime型を完全マスター!日付と時間の操作を初心者向けに解説
No.4
Java&Spring記事人気No4
ASP.NET
ASP.NETを安定稼働させるためのIISアプリケーションプール設定完全ガイド【初心者向け】
No.5
Java&Spring記事人気No5
VB.NET
VB.NETで日付を文字列に変換!ToStringやFormatの使い方を徹底解説
No.6
Java&Spring記事人気No6
VB.NET
VB.NETの構文ルールまとめ!インデント・改行・予約語など初心者が最初に覚えるべきポイント
No.7
Java&Spring記事人気No7
VB.NET
VB.NETのコンストラクタと初期化処理の書き方を初心者向けに解説
No.8
Java&Spring記事人気No8
ASP.NET
ASP.NET WebFormsとは?基本概念と仕組みを初心者向けにやさしく解説