ASPを知る.NET 3.5 MVCルーティングカスタムルーティングの作成
このチュートリアルでは、ASPの使い方を学びます.NET MVCアプリケーションはカスタムルーティングを追加します.Globalをどうするかを学ぶことができますasaxファイルのデフォルトのルーティングテーブルがカスタムルーティングに変更されました.
簡単なASPについてNET MVCアプリケーションでは、デフォルトのルーティングテーブルがうまく機能しています.しかし、特定のルーティング要件があることがわかります.この場合、カスタムルーティングを作成できます.
例を挙げると、ブログアプリケーションを作成しています.間もなく来るリクエストをこのように処理したいかもしれません.
/LingLing/10-28-1987
ユーザーがこのリクエストを入力すると、日付10/28/1987に対応するブログエントリを返します.このタイプのリクエストを処理するには、カスタムルーティングを作成する必要があります.
以下のコードのGlobal.asaxにはBlogと命名された新しいカスタムルーティングが含まれており、/Lingg/エントリの日付のような要求を処理しています.
ルーティングテーブルに追加されるルーティング順序は非常に重要です.私たちの新しいカスタムBlogルーティングは、既存のDefaultルーティングの前にあります.この順序を逆にすると、Defaultルーティングは常にカスタムルーティングではなく呼び出されます.
カスタムBlogルーティングは、/ARchive/を開始とする任意のリクエストに一致します.したがって、以下のURLはすべて一致します.
/LingLing/12-25-2009
/LingLing/10-6-2004
/LingLing/apple
カスタムルーティングは、到来する要求をArchiveというコントローラにマッピングし、Entry()アクションを呼び出します.Entry()メソッドが呼び出されると、エントリの日付がentryDateパラメータとして渡されます.
コード内のEntry()メソッドは、DateTimeタイプのパラメータを受け入れることに注意してください.MVCフレームワークは非常にスマートで、URLのエントリの日付を自動的にDateTime値に変換するのに十分です.URLのエントリ日付パラメータをDateTimeに変換できない場合、エラーが発生します.
簡単なASPについてNET MVCアプリケーションでは、デフォルトのルーティングテーブルがうまく機能しています.しかし、特定のルーティング要件があることがわかります.この場合、カスタムルーティングを作成できます.
例を挙げると、ブログアプリケーションを作成しています.間もなく来るリクエストをこのように処理したいかもしれません.
/LingLing/10-28-1987
ユーザーがこのリクエストを入力すると、日付10/28/1987に対応するブログエントリを返します.このタイプのリクエストを処理するには、カスタムルーティングを作成する必要があります.
以下のコードのGlobal.asaxにはBlogと命名された新しいカスタムルーティングが含まれており、/Lingg/エントリの日付のような要求を処理しています.
using System.Web.Mvc;
using System.Web.Routing;
namespace MvcApplication1
{
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Blog", // Route name
"LingLing/{entryDate}", // URL with parameters
new { controller = "LingLing", action = "Entry" } // Parameter defaults
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
}
protected void Application_Start()
{
RegisterRoutes(RouteTable.Routes);
}
}
}
ルーティングテーブルに追加されるルーティング順序は非常に重要です.私たちの新しいカスタムBlogルーティングは、既存のDefaultルーティングの前にあります.この順序を逆にすると、Defaultルーティングは常にカスタムルーティングではなく呼び出されます.
カスタムBlogルーティングは、/ARchive/を開始とする任意のリクエストに一致します.したがって、以下のURLはすべて一致します.
/LingLing/12-25-2009
/LingLing/10-6-2004
/LingLing/apple
カスタムルーティングは、到来する要求をArchiveというコントローラにマッピングし、Entry()アクションを呼び出します.Entry()メソッドが呼び出されると、エントリの日付がentryDateパラメータとして渡されます.
using System;
using System.Web.Mvc;
namespace MvcApplication1.Controllers
{
public class ArchiveController : Controller
{
public string Entry(DateTime entryDate)
{
return "You requested the entry from " + entryDate.ToString();
}
}
}
コード内のEntry()メソッドは、DateTimeタイプのパラメータを受け入れることに注意してください.MVCフレームワークは非常にスマートで、URLのエントリの日付を自動的にDateTime値に変換するのに十分です.URLのエントリ日付パラメータをDateTimeに変換できない場合、エラーが発生します.