РЕДАКТИРОВАТЬ: Извините, я плохо объяснил. По сути, в приведенном ниже примере я хочу, чтобы «this-is-hand-by-by-content-controller» был «id», поэтому я могу получить его в ContentController в качестве параметра действия, но я хочу получить к нему доступ через root сайта, например, mysite.com/this-is-not-passed-to-homecontroller.
Я пытаюсь создать корневой маршрут, который пойдет на отдельный контроллер (вместо домашнего).
Я следовал примеру "RootController", опубликованному где-то еще, который реализует IRouteConstraint, но он просто не работает, и я уже потратил на это пару часов!
По сути, у меня есть LoginController, HomeController и ContentController.
Я хочу иметь возможность просматривать HomeController / Index, перейдя на http://mysite/. Я хочу иметь возможность просматривать LoginController / Index, перейдя на http://mysite/Login. Но .. Я хочу ContentController / Index вызываться при возникновении любого другого результата, например: http: / mysite / this-is-hand-by-by-content-controller
Есть ли элегантный способ сделать это, который работает?
Это была моя последняя попытка .. Я вырезал / вставил / скопировал / почесал голову так много раз, что немного грязно:
routes.MapRoute(
"ContentPages",
"{action}",
new { Area = "", controller = "ContentPages", action = "View", id = UrlParameter.Optional },
new RootActionConstraint()
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { Area = "", controller = "Home", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
new string[] { "Website.Controllers" }
);
Любая помощь очень ценится!
1024 * Хим *