开发者

MvcHtmlString MVC 2 Conversion Error

开发者 https://www.devze.com 2022-12-22 10:42 出处:网络
I converted my project from MVC 1 to MVC 2 and Visual Studio 2008 gives me the following error: Error1\'System.Web.Mvc.MvcHtmlString\' does not contain a definition for \'Substring\' and no extension

I converted my project from MVC 1 to MVC 2 and Visual Studio 2008 gives me the following error:

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

Here is the code the error is pointing to. It is specifically having trouble with the "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;
     }

I suspect that it has something to do with a missing reference or something but I'm at a loss.


Html.ActionLink() does no longer return a string. It now returns a MvcHtmlString. A MvcHtmlString does not have a method called .Substring() (only string does). If you call .ToString() or .ToHtmlString() (will encode the value) then you will be able to call .Substring(). See this link.

0

精彩评论

暂无评论...
验证码 换一张
取 消