Diary
というアクションで呼び出されるコントローラーがありView
ます。
「Diary/2012/6」という形式の URL を受け取った場合、 = 2012 と= 6View
でアクションを呼び出したいと思います。year
month
「日記」という形式の URL を受け取った場合、 = [現在の年] と= [現在の月番号]でView
アクションを呼び出したいと考えています。year
month
ルーティングをどのように構成しますか?
Diary
というアクションで呼び出されるコントローラーがありView
ます。
「Diary/2012/6」という形式の URL を受け取った場合、 = 2012 と= 6View
でアクションを呼び出したいと思います。year
month
「日記」という形式の URL を受け取った場合、 = [現在の年] と= [現在の月番号]でView
アクションを呼び出したいと考えています。year
month
ルーティングをどのように構成しますか?
routes.MapRoute(
"DiaryRoute",
"Diary/{year}/{month}",
new { controller = "Diary", action = "View", year = UrlParameter.Optional, month = UrlParameter.Optional }
);
そしてコントローラのアクション:
public ActionResult View(int? year, int? month)
{
...
}
ルートでは、以下を使用できます。
routes.MapRoute(
"Dairy", // Route name
"Dairy/{year}/{month}", // URL with parameters
new { controller = "Dairy", action = "Index", year = DateTime.Now.Year, month = DateTime.Now.Month });
年月が指定されていない場合は、現在の値が送信されます。それらが提供されている場合、それらの値はルートによって使用されます。
編集
以下のコメントに加えて、これは上記の基準を使用して新しいプロジェクトを作成するために使用されるコードです。
グローバルアサックス
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"Dairy/{year}/{month}", // URL with parameters
new { controller = "Dairy", action = "Index", year = DateTime.Now.Year, month = DateTime.Now.Month } // Parameter defaults
);
}
乳製品コントローラー
public ActionResult Index(int year, int month)
{
ViewBag.Year = year;
ViewBag.Month = month;
return View();
}
景色
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
Month - @ViewBag.Month <br/>
Year - @ViewBag.Year
結果: