Сильно типизированное вспомогательное расширение Html.ActionLink <T>() из MVC Futures плохо работает с областями - PullRequest
0 голосов
/ 07 апреля 2010

Я заметил странное поведение при использовании строго типизированного метода расширения HtmlHelper.ActionLink () из ASP.NET MVC 2 Futures. Когда я использую его для связи с контроллером в области, я должен использовать следующий атрибут на этом контроллере

[ActionLinkArea("SomeArea")]

Он правильно связывается с действиями контроллера, расположенного в SomeArea, из области по умолчанию. Проблема в том, что я хочу сделать ссылку на действие контроллера, расположенное в области по умолчанию изнутри SomeArea. Ссылка появляется с префиксом "/ SomeArea /". Обходной путь, который я использую:

[ActionLinkArea("")]

на контроллере на всех контроллерах, которые расположены в области по умолчанию (с использованием наследования).

Это кажется странным, потому что, по моему мнению, это должно быть поведение по умолчанию для этого метода. Используя .NET Reflector для этого метода расширения, я заметил, что ошибка заключается в следующем:

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

Так что на самом деле это поведение по умолчанию HtmlHelper.

1 Ответ

2 голосов
/ 07 апреля 2010

Известная проблема в MVC 2 Futures - та же основная причина, что и http://forums.asp.net/p/1535698/3732346.aspx.

Из нашей внутренней базы данных, если вы хотите исправить файл и перекомпилировать MVC Futures самостоятельно:

Ошибка в LinkBuilder.cs, строка 21. Вызов метода GetVirtualPath () должно быть GetVirtualPathForArea ().

...