2010-12-12 9 views
10

के लिए एचटीएमएल एन्कोडिंग सबसे पहले मैं रेज़र व्यू इंजन के साथ एमवीसी 3 आरसी 1 का उपयोग कर रहा हूं।एचटीएमएल हेल्पर एक्सटेंशन विधि

public static string TabbedMenuItem(this HtmlHelper htmlHelper, string text, string actionName, string controllerName) { 
    StringBuilder builder = new StringBuilder(); 
    builder.Append("<li>"); 

    builder.Append(text); 

    builder.Append("</li>"); 
    return builder.ToString(); 
} 

और दृश्य पर इसे इस तरह कहा जाता है: मैं एक HTML सहायक विस्तार जो इस तरह दिखता है मिल गया है

@Html.TabbedMenuItem("Home", "Index", "Home") 

समस्या मुझे मिल गया है कि MVC स्वचालित रूप से HTML एन्कोडिंग है दृश्य में परिणाम इतना सब मैं स्ट्रिंग के एन्कोडेड संस्करण है:

<li>Home</li> 

किसी को भी अपने HTML सहायक एक्सटेंशन के लिए स्वत: एन्कोडिंग निष्क्रिय करने के लिए कैसे पता है?

अग्रिम एंडी

+1

भविष्य में संदर्भ के लिए, MVC एक System.Web.Mvc.TagBuilder वर्ग है कि आप में देखना चाहते हो सकता है है। यह IHtmlString को वापस करने की ज़रूरतों को अस्वीकार नहीं करता है, लेकिन यह इस प्रकार के कार्य के लिए स्ट्रिंगबिल्डर से अधिक कार्यक्षमता के साथ आता है। –

उत्तर

21
public static IHtmlString TabbedMenuItem(this HtmlHelper htmlHelper, string text, string actionName, string controllerName) 
{ 
    StringBuilder builder = new StringBuilder(); 
    builder.Append("<li>"); 

    builder.Append(text); 

    builder.Append("</li>"); 
    return MvcHtmlString.Create(builder.ToString()); 
} 

उपयोग वापसी मान IHtmlString धन्यवाद। इस सहायता की आशा करें।

+0

पूरी तरह से काम करता है। धन्यवाद लेपारा बहुत सराहना की। – AndyM

+0

क्या यह 'MvcHtmlString' होना चाहिए या यह अब एएसपी.नेट एमवीसी 3 में मामला नहीं है? – ehdv

+1

@ehdv अच्छा सवाल; मैंने इसे गुगल किया और पाया (यह) [http://stackoverflow.com/a/3382908/295686] (एचटीएमएल स्ट्रिंग को .NET 4+ में प्राथमिकता दी गई है) – mlhDev

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