Это пример "ада перегрузки" в ASP.NET MVC.
Первый код вызывает следующий метод:
public static MvcHtmlString ActionLink(
this HtmlHelper htmlHelper,
string linkText,
string actionName,
string controllerName,
Object routeValues,
Object htmlAttributes
)
тогда как второй код называет этот:
public static MvcHtmlString ActionLink(
this HtmlHelper htmlHelper,
string linkText,
string actionName,
Object routeValues,
Object htmlAttributes
)
Обратите внимание, что строковый параметр controllerName
в первом вызове становится routeValues
во втором. Строковое значение «Product» передается маршрутизируемым значениям: используется строковое свойство Length
, длина которого здесь равна 7, следовательно, «Длина = 7» вы получаете в маршруте.
Рассматривая первый метод, кажется, что вы поменяли местами параметры routeValues
и htmlAttributes
.