ASP.NET Coreにおけるルーティングの基本を完全解説!初心者でもURLの仕組みがわかる
生徒
「ASP.NET Coreで作ったWebアプリって、URLと画面はどうやって結びついているんですか?」
先生
「それは“ルーティング”という仕組みで管理されています。住所と行き先を対応づけるようなものですね。」
生徒
「住所って、インターネットのURLのことですか?」
先生
「その通りです。どのURLにアクセスされたら、どの処理を動かすかを決めるのがルーティングです。」
1. ASP.NET Coreのルーティングとは?
ASP.NET Coreのルーティングとは、ブラウザからアクセスされたURLと、サーバー側で実行する処理を結びつける仕組みです。たとえば「/Home/Index」というURLにアクセスしたときに、どの画面を表示するのか、どのプログラムを動かすのかを判断します。
これは、家の住所を見て正しい家に配達する宅配便と同じです。URLが住所、処理が家の中の人だと考えるとイメージしやすくなります。ルーティングを理解すると、Webアプリがどのように画面を切り替えているのかが見えてきます。
2. URLと処理が結びつく基本の考え方
ASP.NET Coreでは、URLの形によって、実行される処理が決まります。多くの場合、「コントローラー名」「アクション名」という考え方を使います。コントローラーは処理のまとまり、アクションは具体的な動作です。
たとえば「/Product/Detail」というURLなら、「Product」という処理グループの中にある「Detail」という処理を実行する、という意味になります。難しく感じるかもしれませんが、「フォルダ」と「ファイル」の関係に近いと考えると理解しやすくなります。
3. Program.csで設定するルーティングの基本
ASP.NET Coreでは、ルーティングの設定をProgram.csで行います。ここはアプリ全体の動きを決める重要な場所です。初期状態でも、すでに基本的なルーティングが用意されています。
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}"
);
この設定は、「URLの最初がコントローラー名、次がアクション名」という意味です。何も指定しなければ、HomeコントローラーのIndexアクションが使われます。これにより、トップページが表示されます。
4. コントローラーとルーティングの関係
コントローラーは、実際に処理を書く場所です。ルーティングは、そのコントローラーのどの処理を使うかを決める案内役になります。URLを見て、適切なコントローラーへ案内するイメージです。
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
public IActionResult About()
{
return View();
}
}
この場合、「/Home/Index」にアクセスするとIndexの画面が表示され、「/Home/About」にアクセスするとAboutの画面が表示されます。URLと処理の関係がとてもシンプルなのが特徴です。
5. 属性ルーティングでURLをわかりやすくする
ASP.NET Coreでは、属性ルーティングという方法も使えます。これは、プログラムの上に直接URLを書く方法です。住所ラベルを直接貼るようなイメージです。
[Route("hello")]
public IActionResult Hello()
{
return Content("こんにちは!");
}
この設定では、「/hello」というURLで直接この処理が呼び出されます。短くて覚えやすいURLを作れるため、初心者にも扱いやすい方法です。
6. パラメータ付きURLの考え方
ルーティングでは、URLの一部をデータとして受け取ることもできます。これをパラメータと呼びます。番号札を受け取るようなイメージです。
public IActionResult Detail(int id)
{
return Content($"商品IDは {id} です");
}
「/Product/Detail/3」のようにアクセスすると、idに3が入ります。この仕組みを使うことで、商品ページや詳細画面を簡単に作れます。
7. ルーティングを理解するメリット
ルーティングを理解すると、URL設計がしやすくなり、Webアプリ全体が整理されます。どのURLでどの画面が表示されるのかが明確になり、後から見ても分かりやすい構造になります。
また、エラーが起きたときも「URLと処理の結びつき」を確認することで、原因を見つけやすくなります。初心者にとっても、最初にしっかり理解しておくと安心できる重要なポイントです。