В основном у меня есть сервер CMS, который я создал с помощью ASP.NET MVC, и теперь я перехожу к сайту frontend и должен иметь возможность загружать страницы из моей базы данных cms на основе введенного маршрута.
Таким образом, если пользователь вводит domain.com/students/information, MVC будет искать в таблице страниц, чтобы увидеть, существует ли страница, которая имеет постоянную ссылку, которая соответствует учащимся/информации, если это так будет перенаправлено на контроллер страницы, а затем загрузите данные страницы из базы данных и верните их в представление для отображения.
До сих пор я пытался поймать весь маршрут, но он работает только для двух сегментов URL, так что/студентов/информации, но не /students/information/fall. Я не могу найти что-либо в Интернете о том, как это сделать, поэтому, хотя я бы спросил здесь, прежде чем найти и скомпилировать ASP.NET MVC с открытым исходным кодом и проанализировать код.
Вот конфигурация маршрута, которая у меня есть до сих пор, но я считаю, что есть лучший способ сделать это.
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" }
);
}
Если кто-нибудь может указать мне в правильном направлении, как я буду загружать страницы CMS из базы данных, до трех URL-сегментов и все еще иметь возможность загружать основные страницы, которые имеют предопределенный контроллер и действие.