ASP.NET MVC (バージョン 3 を使用) は初めてで、期待どおりに動作しActionLink
たり動作したりできません。RouteLink
このアプリでは、イベントに多くのアクティビティを含めることができ、次を使用してそれらにルーティングしたいと考えています。
/イベント/1/アクティビティ /Event/1/Activity/Index (前と同じ) /イベント/1/アクティビティ/詳細/5
これら 2 つのヘルパーによって生成される HTML は、常に次のようになります。
/イベント/1
これがコードです...
Razor HTML を表示
@Html.RouteLink("View Sessions", "SubControllerIndex",
new { eventId = Model.Id, controller = "Activity", action = "Index" })
@Html.ActionLink("View Sessions", "Index", "Activity", new { eventId = Model.Id }, null)
ルート マッピング
routes.MapRoute(
"SubControllerIndex",
"Event/{eventId}/{controller}",
new { controller = "Activity", action = "Index" },
new { eventId = @"\d+" }
);
routes.MapRoute(
"ActivityIndex",
"Event/{eventId}/{controller}/{action}/{id}",
new { controller = "Activity", action = "Index", id = UrlParameter.Optional },
new { eventId = @"\d+", id = @"\d*" }
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
new { id = @"\d*" }
);
アクティビティ コントローラー
public ActionResult Index(long eventId)
{
var activities = _context.Activities.Where(a => a.Event.Id == eventId).ToList();
return View(activities);
}
ここで私が間違っていることはありますか?