在使用来自 ASP.NET MVC 2 Futures 的强类型 HtmlHelper.ActionLink() 扩展方法时,我注意到一些奇怪的行为。当我使用它链接到某个区域中的控制器时,我必须在此控制器上使用以下属性
[ActionLinkArea("SomeArea")]
它从默认区域正确链接到位于 SomeArea 中的控制器的操作。问题是当我想从 SomeArea 内链接回位于默认区域中的控制器操作时。链接出现时带有“/SomeArea/”前缀。我使用的解决方法是:
[ActionLinkArea("")]
在位于默认区域的所有控制器上(使用继承)。
这似乎很奇怪,因为在我看来,这应该是该方法的默认行为。在此扩展方法上使用 .NET Reflector 我注意到错误出在此处:
return helper.RouteLink(linkText, routeValuesFromExpression, new RouteValueDictionary(htmlAttributes));
所以这实际上是HtmlHelper
.