MvcHtmlString MVC 2 Ошибка преобразования - PullRequest
9 голосов
/ 05 марта 2010

I преобразовал мой проект из 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.Substring (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;
     }

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

1 Ответ

11 голосов
/ 05 марта 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...