Parse MVC Route Extension de fichier personnalisé à partir de requestContext
-
15-11-2019 - |
Question
J'ai configuré deux extensions personnalisées pour activer MVC dans IIS6.
Le site est donc accessible avec une URL de quelque chose comme ...
mysite/mycontroller.europe/myaction
ou comme ...
mysite/mycontroller.america/myaction
Quel est le moyen le plus robuste de trouver l'extension du RequestContext
exemple?
Alors j'aimerais pouvoir écrire quelque chose comme ...
var location = reqContext.......GetExtenstion(); // location = "europe"
Et évidemment, ce travail même si la configuration du site / des répertoires change un peu.
La solution
Définissez un itinéraire:
routes.MapRoute(
"DefaultWithExtension",
"{controller}.{extension}/{action}",
new { controller = "Home", action = "Index", extension = "america" }
);
et alors:
var extension = RequestContext.RouteData.GetRequiredString("extension");
Autres conseils
Vous pouvez également définir l'extension comme un paramètre de chaîne pour toutes les actions pertinentes pour les contrôleurs, auquel cas il sera directement disponible. par exemple
public ActionResult myaction(string extension)
Cela nécessite toujours l'entrée MapRoute définie ci-dessus.