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.

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top