Fondamentalement, j'ai un CMS backend j'ai construit à l'aide de ASP.NET MVC et maintenant, je me déplace sur le frontend du site et doivent être en mesure de charger les pages de mon cms, base de données, basée sur l'itinéraire entré.
Donc, si l'utilisateur entre domain.com/students/information, MVC, regarde dans les pages de la table pour voir si une page existe un lien permanent qui correspond étudiants/de l'information, dans l'affirmative, il serait de rediriger vers le contrôleur de la page et ensuite de charger les données de la page à partir de la base de données et de le retourner à l'affichage pour l'affichage.
Jusqu'à présent j'ai essayé d'avoir un fourre-tout de l'itinéraire, mais il ne fonctionne que pour les deux URL segments, de sorte que /étudiants/de l'information, mais ce n'est pas /étudiants/information/de l'automne. Je ne peux pas trouver quelque chose en ligne sur la façon de le faire, donc j'ai pensé que je voudrais poser ici, avant que je trouve et open source ASP.NET MVC de la cms et de disséquer le code.
Voici le parcours de configuration j'ai jusqu'à présent, mais je sens qu'il y a une meilleure façon de le faire.
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" }
);
}
Si quelqu'un peut me pointer dans la bonne direction sur la façon dont j'allais sur le chargement de pages CMS à partir de la base de données, avec un maximum de trois URL segments, et encore être en mesure de la charge de base des pages, qui ont un contrôleur et l'action prédéfinie.