j'utilise une route comme celui-ciStockage des liens vers les pages de contenu internes dans ASP.NET MVC
routes.MapRoute(
"PageBySlug",
RouteType.Regular,
"{slug}",
new {controller = "Page", action = "Display", slug = "Default"}, null
);
à la carte demande à ~/Some-page-Slug à ~/Page/Affichage/Some-page -Limace. Lors de l'ajout de contenu, l'utilisateur peut choisir de lier des pages existantes pour créer des références, puis stocker ces liens dans ce format dans le magasin de données: "/ Some-Page-Slug".
Lorsque j'exécute l'application dans Cassini et que je retire le lien de la banque de données et que je l'attache à une balise, cela ressemble à http://localhost:93229/Some-Page-Slug et ce lien fonctionne.
Mais lors de l'exécution de l'application dans un répertoire virtuel sous un site Web dans IIS, le lien ci-joint génère cette URL http://localhost/Some-Page-Slug, alors qu'elle devrait être http://localhost/virtualdir/Some-Page-Slug.
Bien sûr, cela génère une erreur 404. Comment puis-je résoudre ce problème pour qu'il soit universellement utile et fonctionne dans toutes les circonstances? Devrais-je le stocker différemment dans la base de données ou devrais-je le transformer correctement dans mes vues lors de l'exécution et comment le faire?