MvcHtmlString MVC 2转换错误

时间:2010-03-04 21:46:03

标签: model-view-controller asp.net-mvc-2

从MVC 1到MVC 2和Visual Studio 2008的converted my project给出了以下错误:

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 个答案:

答案 0 :(得分:11)

Html.ActionLink()不再返回字符串。它现在返回一个MvcHtmlString。 MvcHtmlString没有名为.Substring()的方法(只有字符串)。如果您拨打.ToString().ToHtmlString()(将对该值进行编码),则可以拨打.Substring()。请参阅this link