繁体   English   中英

强类型化Html.ActionLink <T> ()MVC Futures的辅助程序扩展在区域方面表现不佳

[英]Strongly typed Html.ActionLink<T>() helper extension from MVC Futures doesn't do well with areas

使用ASP.NET MVC 2 Futures的强类型HtmlHelper.ActionLink()扩展方法时,我注意到一些奇怪的行为。 当我使用它链接到某个区域中的控制器时,必须在该控制器上使用以下属性

[ActionLinkArea("SomeArea")]

它从默认区域正确链接到位于SomeArea中的控制器的动作。 问题是当我想从SomeArea内链接回位于默认区域的Controller动作时。 该链接显示为“ / SomeArea /”前缀。 我使用的解决方法是:

[ActionLinkArea("")]

在控制器上位于默认区域中的所有控制器上(使用继承)。

这似乎很奇怪,因为我认为这应该是此方法的默认行为。 在此扩展方法上使用.NET Reflector时,我注意到该错误位于此处:

return helper.RouteLink(linkText, routeValuesFromExpression, new RouteValueDictionary(htmlAttributes));

因此,这实际上是HtmlHelper的默认行为。

MVC 2期货中的已知问题-与http://forums.asp.net/p/1535698/3732346.aspx相同的根本原因。

在我们的内部数据库中,如果您想修补文件并自己重新编译MVC Futures:

该错误在LinkBuilder.cs的第21行中。方法调用GetVirtualPath()应为GetVirtualPathForArea()。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM