Zasadniczo mam backend CMS, który zbudowałem przy użyciu ASP.NET MVC, a teraz przechodzę do strony frontend i muszę mieć możliwość ładowania stron z mojej bazy danych cms, na podstawie wprowadzonej trasy.Dynamic Routes z bazy danych dla ASP.NET MVC CMS
Jeśli użytkownik wejdzie na domain.com/students/information, MVC zajrzy do tabeli stron, aby sprawdzić, czy istnieje strona z łączem bezpośrednim, która pasuje do uczniów/informacji, jeśli tak, to przekieruje do kontrolera strony i następnie załaduj dane strony z bazy danych i zwróć je do widoku do wyświetlenia.
Do tej pory próbowałem złapać całą trasę, ale działa tylko dla dwóch segmentów adresu URL, więc/studenci/informacje, ale nie/studenci/informacje/upadek. Nie mogę znaleźć niczego online na temat tego, jak to osiągnąć, więc chciałem zapytać tutaj, zanim znajdę i otworzą źródłowe ASP.NET MVC cms i przeanalizuję kod.
Oto konfiguracja trasy, którą dotychczas miałem, ale uważam, że jest lepszy sposób na zrobienie tego.
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
// Default route to handle core pages
routes.MapRoute(null,"{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
new { controller = "Index" }
);
// CMS route to handle routing to the PageController to check the database for the route.
var db = new MvcCMS.Models.MvcCMSContext();
//var page = db.CMSPages.Where(p => p.Permalink ==)
routes.MapRoute(
null,
"{*.}",
new { controller = "Page", action = "Index" }
);
}
Jeśli ktoś może wskazać mi w dobrym kierunku, w jaki sposób byłoby przejść o ładowanie stron CMS z bazy danych, aż do trzech segmentów URL, i nadal będą mogli załadować stron podstawowych, które mają kontroler i wstępnie zdefiniowana akcja.
Dziękuję bardzo, spróbuję tego i oznaczę jako odpowiedź, jeśli zadziała. :) –
Awesome działało świetnie, po prostu musiałem dodać czek, jeśli (wartości [parameterName]! = Null), ale poza tym idealnie! Dziękuję :) –
serdecznie zapraszamy. Cieszę się, że to się udało. :) – shakib