Skip to content

MS_ASPNETWebPages

nishi_74322014 edited this page Aug 12, 2026 · 1 revision

ASP.NET Web Pages

概要

補足(名前の整理): 「ASP.NET Web Pages」と「Razor Pages」は
同じものではない。系譜が近いだけである。

時期 ランタイム 特徴
ASP.NET Web Pages(Razor v1/v2) 2010〜 .NET Framework WebMatrix 向け。.cshtml 単体で完結。開発終了
Razor Pages 2017〜(ASP.NET Core 2.0) .NET Core / .NET .cshtmlPageModel.cshtml.cs)。現行

Razor Pages は「単一ファイルで手軽に」ではなく、
ページ単位に Model とハンドラを持つ設計になっている。
Web Pages の「PHP 的な手軽さ」とはむしろ性格が異なる。

詳細

Razor Pages

補足(MVC と Razor Pages の使い分け): 両者は排他ではなく、
同一プロジェクトで併用できるAddRazorPages()AddControllersWithViews())。
使い分けの目安は次の通り。

向く場面
Razor Pages 画面 1 つに対して処理が閉じている(CRUD、フォーム、管理画面)。ファイルが画面と 1:1 で対応し、どこを直せばよいか分かりやすい
MVC 1 つの Controller が複数の View を束ねる/API と View を共有する/既存資産が MVC

Microsoft は 新規の画面系は Razor Pages を推奨している。
「Controller が肥大化して、どのアクションがどの画面か分からない」
という MVC の典型的な問題が起きにくいためである。

なお、ルーティングはファイル パスがそのまま URLになる
Pages/Products/Edit.cshtml/Products/Edit)。
@page "{id:int}" のようにディレクティブで上書きもできる。

Razor Class Library

補足: Razor Class Library(RCL)は、
Razor の画面をクラス ライブラリに閉じ込めて配布する仕組み。
ASP.NET Core Identity の既定のログイン画面が
プロジェクトに見えないのは、Microsoft.AspNetCore.Identity.UI という
RCL に入っているためである。

アプリ側の同じパスにファイルを置くとそちらが優先されるため、
必要な画面だけをスキャフォールドして上書きする、という運用ができる。

参考

Build Insider

CodeZine

しばやん雑記

だるろぐ


Tags: 移行, .NET開発, .NET Core, ASP.NET

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally