2009-02-24 13 views
7

सिर्फ नवीनतम ASP.NET MVC रिलीज़ उम्मीदवार मैंने देखा करने के लिए उन्नत करने के बाद साथ अवधि की जगह से ASP.NET MVC की रोकथाम कि, एचटीएमएल सहायकों, अवधि के साथ किसी भी नाम का उपयोग करते समय "।" तत्व की आईडी आउटपुट होने पर इसमें यह अंडरस्कोर "_" द्वारा प्रतिस्थापित किया जाएगा।एचटीएमएल हेल्पर आईडी में अंडरस्कोर

मेरा मानना ​​है कि इस to aid in using JQuery है और अवधि के उपयोग ModelBinders के उपयोग में सहायता करने के लिए है। इसने हमारे सभी जावास्क्रिप्ट को तोड़ दिया है, जो प्रोटोटाइप का उपयोग करता है, क्योंकि आईडी सभी बदल गई हैं।

वहाँ एक रास्ता आसानी से इस सुविधा को बंद करने के लिए है?

उत्तर

14

ASP.NET MVC RC1 रिलीज़ नोट से (पेज 15)।

इस रिलीज में, डिफ़ॉल्ट रूप से डॉट चरित्र आईडी विशेषता का मान में एक अंडरस्कोर से स्वचालित रूप से बदल दिया है। इस प्रकार उदाहरण के पाठ बॉक्स renders निम्न मार्कअप:

<input type="text" name="Person.FirstName" id="Person_FirstName" />

डिफ़ॉल्ट प्रतिस्थापन चरित्र बदलने के लिए आपको चरित्र है कि आप के बजाय का उपयोग करना चाहते को HtmlHelper.IDDotReplacementChar गुण सेट कर सकते हैं।

FYI करें

http://www.codeplex.com/aspnet पर स्रोत कोड को देखते हुए, ऐसा लगता है कि आरसी 1 में संपत्ति का असली नाम IdAttributeDotReplacement है। प्रासंगिक कोड स्निपेट नीचे है। डॉट को रखने के लिए, आप बस इस प्रॉपर्टी को डॉट कैरेक्टर पर सेट करेंगे - यानी, डॉट कैरेक्टर को अपने साथ बदलें।

public static string IdAttributeDotReplacement { 
    get { 
     if (String.IsNullOrEmpty(_idAttributeDotReplacement)) { 
      _idAttributeDotReplacement = "_"; 
     } 
     return _idAttributeDotReplacement; 
    } 
    set { 
     _idAttributeDotReplacement = value; 
    } 
} 
+2

ऐसा करने का एक अजीब तरीका लगता है - मान लीजिए कि यह JQuery डिफ़ॉल्ट में मदद करना है। मैंने HtmlHelper.IdAttributeDotReplacement = "।" जोड़ा; वैश्विक अनुप्रयोग_स्टार्ट पर और हम 8 मिनट में ऑनलाइन वापस आ गए;) धन्यवाद –

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