Как я могу получить параметр URL для всего сайта в маршруте, не загромождая каждое действие контроллера параметром? Мой вопрос похож на этот вопрос , но я хочу избежать беспорядка ModelBinder . То есть. в Global.asax.cs :
routes.MapRoute(
"Default", // Route name
"{sitename}/{controller}/{action}/{id}",
new { sitename = "", controller = "SomeController", action = "Index", id = "" } );
Итак, вместо следующего в классе SomeController:
public ActionResult Index(string sitename)
{
SiteClass site = GetSite(sitename);
...
return View(site.GetViewModel());
}
Я бы предпочел следующее:
public ActionResult Index()
{
SiteClass site = CurrentSite; // where CurrentSite has already retrieved data based on unique URL sitename parameter.
...
return View(site.GetViewModel());
}
Возможно, этого можно достичь с помощью фильтра действий на уровне контроллера? OnActionExecuting