MVC Futures 中的强类型 Html.ActionLink() 辅助扩展不适用于区域
在使用 ASP.NET MVC 2 Futures 的强类型 HtmlHelper.ActionLink() 扩展方法时,我注意到一些奇怪的行为。当我使用它链接到某个区域中的控制器时,我必须在此控制器上使用以下属性,
[ActionLinkArea("SomeArea")]
它正确链接到默认区域中 SomeArea 中的控制器的操作。问题是当我想从 SomeArea 链接回位于默认区域的控制器操作时。该链接显示时带有“/SomeArea/”前缀。我使用的解决方法是:
[ActionLinkArea("")]
在位于默认区域的所有控制器上(使用继承)。
这看起来很奇怪,因为在我看来,这应该是该方法的默认行为。在这个扩展方法上使用 .NET Reflector 我注意到错误就在这里:
return helper.RouteLink(linkText, routeValuesFromExpression, new RouteValueDictionary(htmlAttributes));
所以它实际上是 HtmlHelper
的默认行为。
I noticed some odd behaviour when using the strongly typed HtmlHelper.ActionLink() extension method from ASP.NET MVC 2 Futures. When I use it to link to a controller in an area I have to use the following attribute on this controller
[ActionLinkArea("SomeArea")]
It links properly to the actions of the controller located in SomeArea from the default area. The problem is when I want to link back to a Controller action located in the default area from within SomeArea. The link appears with "/SomeArea/" prefix. The workaround I use is:
[ActionLinkArea("")]
on the controller on all controllers that are located in the default area (using inheritance).
This seems odd because in my opinion that should be the default behavior of this method. Using .NET Reflector on this extension method I noticed that the error lies here:
return helper.RouteLink(linkText, routeValuesFromExpression, new RouteValueDictionary(htmlAttributes));
So it's actually the default behaviour of the HtmlHelper
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
MVC 2 Futures 中的已知问题 - 与 http://forums.asp.net 相同的根本原因/p/1535698/3732346.aspx。
从我们的内部数据库中,如果您想自己修补文件并重新编译 MVC Futures:
Known issue in MVC 2 Futures - same underlying cause as http://forums.asp.net/p/1535698/3732346.aspx.
From our internal database, if you wanted to patch the file and recompile MVC Futures yourself: