Voici mes itinéraires de définition Global.asax.cs:Routes non trouvées ou construits de manière incorrecte
routes.Add(
new NamedTypedRoute(
"feedback-en", RouteType.Regular, "{culture}/Feedback",
new RouteValueDictionary(
new
{
culture = "en",
controller = "Feedback",
action = "Index"
}
),
null,
new MultiLingualMvcRouteHandler()
)
);
routes.Add(
new NamedTypedRoute(
"feedback-sl", RouteType.Regular, "{culture}/Kontakt",
new RouteValueDictionary(
new
{
culture = "sl",
controller = "Feedback",
action = "Index"
}
),
null,
new MultiLingualMvcRouteHandler()
)
);
Si je le fais dans la vue
<%: Html.ActionLink("sl", "feedback-sl")%> | <%: Html.ActionLink("en", "feedback-en")%>
les points d'URL construits à la racine site (aucune information de contrôleur/d'action n'est incluse dans le lien construit).
Si je le fais dans la vue
<%: Html.RouteLink("sl", "feedback-sl")%> | <%: Html.RouteLink("en", "feedback-en")%>
une exception se produit:
"A route named 'feedback-sl' could not be found in the route collection.
Parameter name: name"
Mes deux questions:
- Pourquoi deux aides très similaires, RouteLink et ActionLink ? Quelle est la différence entre eux?
- Je suppose qu'il peut y avoir quelque chose de mal avec mon implémentation NamedTypedRoute. J'ai besoin que cela ait des routes nommées et des routes typées - l'itinéraire peut être admin et régulier. J'utilise cette information pour construire dynamiquement le menu d'administration en fonction de la définition des routes. Pour les pages d'administration, j'ai des noms pointant vers des chaînes de ressources, puis j'utilise ces noms dans les titres des pages d'administration. De cette façon, j'ai des noms de routes localisables. Suis-je trop compliqué?
Pourriez-vous s'il vous plaît partager avec nous l'implémentation de 'NamedTypedRoute' et' MultiLingualMvcRouteHandler'? Il peut y avoir un problème avec l'un d'entre eux. – Venemo