ASP.NETのルートパラメータ完全ガイド!初心者でもわかるid・slugの仕組み
生徒
「ASP.NETでURLの中にある数字とか文字って、どうやって受け取るんですか?」
先生
「それはルートパラメータという仕組みを使います。URLに含まれる情報をプログラムで使えるようにする方法です。」
生徒
「URLに情報を入れるって、住所みたいな感じですか?」
先生
「その例えはとても近いですね。では、基本から順番に見ていきましょう。」
1. ルーティングとは何か?
ASP.NETのルーティングとは、ブラウザからアクセスされたURLと、実際に動くプログラムを結びつける仕組みです。人で例えるなら、住所を見て正しい家に案内する地図のような存在です。URLがどこを指しているのかをASP.NETが理解するために、ルーティングが使われています。
2. ルートパラメータとは?
ルートパラメータとは、URLの一部を変数として扱う仕組みです。たとえば「/Product/5」というURLがあった場合、この「5」の部分をプログラムの中で使うことができます。これにより、同じ画面の仕組みで、違う内容を表示できるようになります。
3. idを使った基本的なルートパラメータ
もっともよく使われるルートパラメータがidです。idは番号を表すことが多く、データを区別するために使われます。ASP.NET MVCでは、URLとコントローラの引数を自動的に結びつけてくれます。
public IActionResult Details(int id)
{
return Content("選ばれたIDは " + id + " です");
}
この場合、「/Product/Details/3」にアクセスすると、idには「3」が入ります。番号札を渡されて呼ばれるイメージをすると分かりやすいです。
4. slugとは?文字を使ったルートパラメータ
slugとは、文字列を使ったルートパラメータのことです。ブログの記事タイトルなどでよく使われます。「123」のような数字ではなく、「aspnet-routing」のような分かりやすい文字をURLに入れられるのが特徴です。
public IActionResult Article(string slug)
{
return Content("記事の識別子は " + slug + " です");
}
文字を使うことで、URLを見ただけで内容が想像しやすくなり、検索エンジンにも優しい設計になります。
5. ルートテンプレートの書き方
ASP.NETでは、URLの形をルートテンプレートとして定義します。これは「どこが固定で、どこが変わるのか」を決める設計図のようなものです。
[Route("blog/{slug}")]
public IActionResult Blog(string slug)
{
return Content("ブログ記事:" + slug);
}
「{ }」で囲まれた部分がルートパラメータです。空き箱にラベルを貼って、そこに値を入れる感覚で考えると理解しやすくなります。
6. 複数のルートパラメータを使う
ルートパラメータは一つだけでなく、複数使うこともできます。たとえば「年」と「月」をURLに含めることで、特定の情報を表現できます。
public IActionResult Archive(int year, int month)
{
return Content(year + "年" + month + "月の一覧です");
}
URLに情報を並べることで、整理された分かりやすい構造になります。引き出しにラベルを付けて整理する感覚に近いです。
7. ルートパラメータと検索エンジン対策
ルートパラメータを正しく使うと、URLが人にも検索エンジンにも理解しやすくなります。意味のある単語を使ったslugは、検索結果に表示されたときの安心感にもつながります。ASP.NETのルーティングは、こうした設計を簡単に実現できる点が大きな魅力です。
8. 初心者がつまずきやすい注意点
ルートパラメータの名前と、メソッドの引数名は一致させる必要があります。また、数字として受け取りたい場合は、型をintにするなど、型にも注意が必要です。ここを意識するだけで、エラーを大きく減らすことができます。