Ошибка преобразования MvcHtmlString MVC 2

Я преобразовал свой проект от MVC 1 до MVC 2 и Visual Studio, 2008 дает мне следующую ошибку:

Error   1   'System.Web.Mvc.MvcHtmlString' does not contain a definition for 'Substring' and no extension method 'Substring' accepting a first argument of type 'System.Web.Mvc.MvcHtmlString' could be found (are you missing a using directive or an assembly reference?) C:\Dev\SapientFansite\SapientFansiteApplication\SapientFansiteWeb\Code\ExtensionMethods\Html.cs 68  75  SapientDevelopment.SapientFansite.Web

Вот код, на который указывает ошибка. Это конкретно испытывает затруднения из-за "linkHtml. Подстрока (0, 2)".

     var linkHtml = htmlHelper.ActionLink(linkText, actionName, controllerName);
     if (isActiveMenuItem) {
        linkHtml = string.Format("{0} class=\"active\" {1}", linkHtml.Substring(0, 2), linkHtml.Substring(3));
     }
     return linkHtml;
     }

Я подозреваю, что это имеет некоторое отношение к отсутствующей ссылке или чему-то, но я в замешательстве.

9
задан casperOne 31 December 2010 в 23:29
поделиться

1 ответ

Html.ActionLink() больше не возвращает строку. Теперь она возвращает MvcHtmlString. У MvcHtmlString нет метода .Substring() (есть только у строки). Если вы вызовете .ToString() или .ToHtmlString() (закодирует значение), то вы сможете вызвать .Substring(). См. эту ссылку.

11
ответ дан 4 December 2019 в 20:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: