J'ai remarqué un comportement étrange lors de l'utilisation de la méthode d'extension fortement typée HtmlHelper.ActionLink() de ASP.NET MVC 2 Futures. Quand je l'utilise pour créer un lien vers un contrôleur dans un domaine que je dois utiliser l'attribut suivant sur ce contrôleurFortement typé Html.ActionLink <T>() l'extension auxiliaire de MVC Futures ne fonctionne pas bien avec les zones
[ActionLinkArea("SomeArea")]
Il relie correctement aux actions du contrôleur situé dans SomeArea de la zone par défaut. Le problème est lorsque je veux lier à une action du contrôleur situé dans la zone par défaut à partir de SomeArea. Le lien apparaît avec le préfixe "/ SomeArea /". La solution I utilise est:
[ActionLinkArea("")]
sur le contrôleur sur tous les contrôleurs qui sont situés dans la zone par défaut (en utilisant l'héritage).
Cela semble étrange parce que, à mon avis, cela devrait être le comportement par défaut de cette méthode. En utilisant réflecteur .NET sur cette méthode d'extension, j'ai remarqué que l'erreur se trouve ici:
return helper.RouteLink(linkText, routeValuesFromExpression, new RouteValueDictionary(htmlAttributes));
Il est en fait le comportement par défaut du HtmlHelper
.
C'est par conception. Les zones sont collantes à elles-mêmes; Si vous voulez sauter d'une zone dans une autre zone, vous devez spécifier explicitement la nouvelle zone (ou non-zone). –