2010-03-04 45 views
9

converted my project從MVC 1到MVC 2和Visual Studio 2008年給了我以下錯誤:MvcHtmlString MVC 2轉換錯誤

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; 
    } 

我懷疑它與一個缺失的引用或某事有關,但我很茫然。

回答

11

Html.ActionLink()不再返回字符串。它現在返回一個MvcHtmlString。 MvcHtmlString沒有一個名爲.Substring()的方法(只有字符串)。如果您撥打.ToString().ToHtmlString()(將對值進行編碼),那麼您將能夠撥打.Substring()。見this link

+0

謝謝你,這個伎倆。看來ActionLink在我身上拉了一個快。 :) – 2010-03-04 23:12:34