ASP.NET Attribute Routingの使い方を完全ガイド!初心者でもわかる[Route]属性
生徒
「ASP.NETでURLと処理を結びつける方法って、どうやって決めているんですか?」
先生
「ASP.NETではルーティングという仕組みを使って、URLとプログラムを対応させています。」
生徒
「設定ファイルが難しそうで不安です…」
先生
「大丈夫です。Attribute Routingを使えば、コードのすぐ上にURLを書くだけで理解できますよ。」
1. ASP.NETのルーティングとは?
ASP.NETのルーティングとは、URLと処理内容を結びつける仕組みです。たとえば、ブラウザで「/Home/Index」と入力したときに、どの画面を表示するのかを決める役割があります。これは、住所を見て目的地に案内するカーナビのようなものです。URLという住所を見て、どの処理に向かうかをASP.NETが判断します。
ルーティングを理解すると、URL設計が整理され、利用者にも検索エンジンにも優しいWebサイトを作れるようになります。
2. Attribute Routingとは何か
Attribute Routingとは、コントローラーやメソッドの上に直接URLを書く方法です。Attributeは「属性」という意味で、プログラムに追加情報を与えるラベルのような存在です。これを使うと、設定ファイルを見なくても「このURLはこの処理」と一目で分かります。
初心者の方にとっては、コードとURLが近くにあるため、理解しやすいのが大きな特徴です。
3. [Route]属性の基本的な書き方
まずは、もっとも基本的な[Route]属性の使い方を見てみましょう。コントローラーに付けることで、アクセスするURLを指定できます。
[Route("hello")]
public class HelloController : Controller
{
public IActionResult Index()
{
return Content("こんにちはASP.NET!");
}
}
この場合、ブラウザで「/hello」にアクセスすると、文字が表示されます。URLと処理が直接結びついているのがポイントです。
こんにちはASP.NET!
4. アクションメソッドごとにURLを指定する
次は、メソッド単位でURLを変える方法です。コントローラー全体ではなく、処理ごとに異なるURLを割り当てたいときに使います。これは、同じ建物の中で部屋番号を変えるイメージです。
[Route("product")]
public class ProductController : Controller
{
[Route("list")]
public IActionResult List()
{
return Content("商品一覧ページ");
}
[Route("detail")]
public IActionResult Detail()
{
return Content("商品詳細ページ");
}
}
これで「/product/list」や「/product/detail」という分かりやすいURLになります。
商品一覧ページ
5. URLに値を渡す仕組み
Attribute Routingでは、URLの中に数字や文字を入れて処理に渡すことができます。たとえば、商品番号をURLで指定する場面です。これは、注文番号を書いた伝票を渡すような感覚です。
[Route("user")]
public class UserController : Controller
{
[Route("profile/{id}")]
public IActionResult Profile(int id)
{
return Content($"ユーザーIDは{id}です");
}
}
「/user/profile/5」にアクセスすると、5という数字がプログラムに渡されます。
ユーザーIDは5です
6. Attribute Routingが初心者に向いている理由
Attribute Routingは、設定が分散しにくく、コードを読むだけで全体像を把握できます。URL設計と処理内容が近くにあるため、迷子になりにくいのが利点です。また、検索エンジンに分かりやすいURLを作りやすく、SEO対策としても有効です。
特にASP.NET Coreでは、この書き方がよく使われており、学習の早い段階で覚えておくと安心です。
7. よくある勘違いと注意点
初心者がつまずきやすいのは、URLの書き間違いやスラッシュの付け忘れです。また、同じURLを複数の場所で定義すると、どの処理が動くか分からなくなります。Attribute Routingを使うときは、URLは一意にすることを意識しましょう。
紙にURL構成を書き出してから実装すると、混乱を防げます。
8. ASP.NETのルーティング全体の中での位置づけ
ASP.NETには、従来の設定ベースのルーティングと、Attribute Routingがあります。その中でもAttribute Routingは、学習コストが低く、コードを読むだけで理解できるため、初心者にとって心強い存在です。ASP.NETのルーティングとURL設計を学ぶ第一歩として、非常におすすめの方法です。