2010-03-04 17 views
9

मैं MVC 1 से converted my project MVC 2 करने के लिए और विजुअल स्टूडियो 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() अब एक स्ट्रिंग नहीं लौटाता है। यह अब एक एमवीसीएचटीएमएलस्ट्रिंग देता है। एक एमवीसीएचटीएमएलस्ट्रिंग में .Substring() (केवल स्ट्रिंग करता है) नामक एक विधि नहीं है। यदि आप .ToString() या .ToHtmlString() (मान को एन्कोड करेंगे) पर कॉल करेंगे तो आप .Substring() पर कॉल कर पाएंगे। this link देखें।

+0

धन्यवाद, यह चाल है। ऐसा लगता है कि एक्शनलिंक ने मुझ पर एक तेज खींच लिया। :) –

संबंधित मुद्दे