Asp.net mvc के साथ Hyphenated html विशेषताएँ


111

उपयोग करने के बजाय हाइफ़नेटेड विशेषताओं वाले तत्वों को बनाते समय एक अच्छा सिंटैक्स है:

<%= Html.TextBox ("name", value, new Dictionary<string, object> { {"data-foo", "bar"} }) %>

प्रस्तावित मानकों एचटीएमएल 5 और डब्ल्यूआईए एआरआईए के लिए एचटीएमएल चश्मा को देखकर ऐसा लगता है कि एचटीएमएल विशेषताओं में हाइफ़न कुछ सामान्य नाम रिक्ति के रूप में अधिक सामान्य होने की योजना बनाई जा रही है।

उदाहरण के लिए एचटीएमएल 5 का प्रस्ताव है कि कस्टम विशेषताओं के साथ उपसर्ग हो data-और WIA ARIA aria-सभी WIA ARIA विशेषताओं के लिए उपसर्ग का उपयोग करता है ।

ASP.NET MVC में HTML हेल्पर्स का उपयोग करते समय जैसे <%= Html.TextBox("name", value, new { attribute = attributeValue }) %>अनाम ऑब्जेक्ट को डिक्शनरी में बदला जाता है।

दुर्भाग्य से सी # में नामों में हाइफ़न के लिए कोई समर्थन नहीं है, इसलिए केवल एक शब्दकोश बनाने का विकल्प है। जिसके लिए वाक्यविन्यास बहुत क्रियात्मक है, क्या किसी ने पूरे विकल्प को फिर से लिखने के बिना ASP.NET MVC के HTML एक्सटेंशन की कार्यक्षमता को बदलने का एक अच्छा विकल्प या सरल तरीका देखा है?

जवाबों:


202

डेटा विशेषता नाम में एक अंडरस्कोर का उपयोग करें, और यह जादुई रूप से आपके लिए इसे संभाल लेगा, इसे एक हाइफ़न में परिवर्तित करेगा। यह जानता है कि आप एक अंडरस्कोर के बजाय एक हाइफ़न चाहते हैं क्योंकि अंडरस्कोर HTML विशेषता नाम में मान्य नहीं हैं।

<%= Html.TextBox("name", value, new { @data_foo = "bar"}) %>

2
मुझे कई SO प्रश्न मिलते हैं, और यह सबसे अच्छा उत्तर है।
user2780436

क्या आप अपने स्टेटमेंट के लिए कारण जोड़ सकते हैं जो HTML विशेषताओं में मान्य नहीं हैं । कम से कम html 4.01 में कहा गया है : विशेषता मान में केवल अक्षर (az और AZ), अंक (0-9), हाइफ़न (ASCII दशमलव 45), अवधियाँ (ASCII दशमलव 46), अंडरस्कोर (ASCII दशमलव 95), और कॉलन हो सकते हैं ( ASCII दशमलव 58) ,
सर्फ करें

@threeFourOneSixOneThree आपका उद्धरण विशेषता मान को संदर्भित करता है, लेकिन इस प्रश्न में हम विशेषता नामों का उल्लेख कर रहे हैं।
ईडी -209

@threeFourOneSixOneThree मैंने अपने उत्तर के अंत को 'HTML विशेषता नामों में मान्य नहीं हैं'
ED-209

19

ActionLink htmlAttributes में प्रदान किया गया उत्तर हाइफ़न के बजाय अंडरस्कोर का उपयोग करने का सुझाव देता है। MVC.Net ब्राउज़र को पृष्ठ भेजने के दौरान अंडरस्कोर के बजाय हाइफ़न का उत्सर्जन करने के लिए माना जाता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.