J'ai une page ASP.NET MVC, où j'essaie d'afficher des URL conviviales. Donc, j'ai une vue de catégorie dans le Home Controller, qui accepte une valeur categoryKey pour obtenir le contenu de la page.ASP MVC Friendly URL et Relative Path Images
Par exemple: http://localhost/Home/Category/Bikes obtient le contenu du vélo.
dans mes Global.asax.cs, je donne les résultats suivants pour gérer ceci:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Category",
"{controller}/{action}/{categoryKey}",
new { controller = "Home", action = "Category", categoryKey = "" });
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
Cela fonctionne très bien, et il obtient le contenu, cependant, je reçois le contenu d'un système de gestion de contenu , pour faciliter l'édition. Lorsque vous ajoutez une image sur la gestion de contenu, il ajoute l'image avec un chemin relatif:
<img src="../AdminUploadContent/bikes.gif" alt="Bikes" />
Maintenant, si je goto « http://localhost/Home/Category », et cette étiquette d'image est sur la page de base, il va tirer la image. Cependant, si je deviens "http://localhost/Home/Category/", ou si j'ajoute la catégorie "/ Accueil/Catégorie/Bicyclettes" /, l'image n'apparaît pas. Les propriétés de l'image pointent sur "http://localhost/Home/AdminUploadContent/bikes.gif".
Y at-il quelque chose que je peux mettre dans mon fichier Global.aspx.cs pour gérer le chemin relatif? Même si je modifie manuellement la gestion de contenu pour ajouter ../../AdminUploadContent/bikes.gif, il coupe le premier ../, puisqu'il effectue une certaine validation.
Je ne recommande pas de mélanger l'idiome asp.net Webforms avec asp.net mvc. Stick à ce
– Roman