2013-04-17 6 views
6

उस्तरा में रेज़र अगर मैं की तरह कुछ था:addind सीएसएस वर्गों तत्वों

@Html.EditorFor(model => model.name) या यहाँ तक कि: @Html.CheckBoxFor(m => m.RememberMe)

मैं एक सीएसएस वर्ग या उन्हें एक आईडी कैसे जोड़ होगा? मैं सहायकों के बारे में पढ़ रहा हूं, लेकिन क्या मुझे हर एक तत्व के लिए सहायक बनाना होगा? क्या रेजर फॉर्म तत्वों में कक्षा या आईडी जोड़ने का कोई आसान तरीका नहीं है?

उत्तर

7

आपको लगता है कि EditorFor सहायक के साथ बस क्योंकि आप नहीं जानते कि ऐसा नहीं कर सकते क्या टेम्पलेट का उपयोग किया जाएगा। आप इसे प्राप्त कर सकते हैं लेकिन आपको एक कस्टम संपादक टेम्पलेट लिखना होगा। उदाहरण के लिए इसे default editor template ओवरराइड करके और दूसरा पैरामीटर ध्यान में रखकर प्राप्त किया जा सकता है जो अतिरिक्त दृश्य डेटा का प्रतिनिधित्व करता है।

यहां इस तरह के एक कस्टम संपादक टेम्पलेट स्ट्रिंग प्रकार कैसा नज़र आ सकता का एक उदाहरण (~/Views/Shared/EditorTemplates/string.cshtml) है:

@Html.TextBox(
    "", 
    ViewData.TemplateInfo.FormattedModelValue, 
    ViewData 
) 

और फिर आपको लगता है कि जैसे कि यह इस्तेमाल कर सकते हैं:

@Html.EditorFor(model => model.name, new { @class = "myclass" }) 

CheckBoxFor सहायक के साथ आप यह कर सकते हैं:

@Html.CheckBoxFor(m => m.RememberMe, new { @class = "myclass" }) 
+0

आह, आज मेरे लिए रिटायर होने का समय है? अब आप सब जगह पर हैं :) जब तक मैंने अपना पोस्ट नहीं किया तब तक आपका जवाब नहीं देखा। –

+0

@vonv।, और फिर भी, यह आपका है जो 2 मिनट बाद पोस्ट किए जाने पर भी उभरा है :-) –

+0

इस ब्लॉग पोस्ट के साथ, क्योंकि एमवीसी 2 पर एमवीसी 2 के लिए काम किया गया है? – TheWebs

0

क्योंकि EditorFor टाइप-विशिष्ट नहीं है, आप इसका उपयोग उन पर नहीं कर सकते हैं।

CheckBoxFor के लिए, आप उपयोग कर सकते हैं:

@Html.CheckBoxFor(m => m.RememberMe, new { @class = "myClass", id = "myID" }) 

नोट @class से पहले क्योंकि कि सी # में एक आरक्षित कीवर्ड है

+0

यह EditorFor के साथ काम नहीं करेगा। इसका दूसरा तर्क ऐसा नहीं करता है जो ज्यादातर लोग सोचते हैं कि यह करता है। –

+0

@DarinDimitrov अच्छा चिल्लाओ, अद्यतन। – mattytommo

3

चेकबॉक्स के लिए यह आसान है, आप सी एक ऐसा कार्य करें:

@Html.CheckBoxFor(m => m.RememberMe, new { @class="your_class", @id="the_id" }) 

यह EditorFor साथ थोड़ा जटिल काम के रूप में यह बॉक्स से बाहर समर्थित नहीं है। मेरा मतलब यह है कि आप प्रत्येक प्रकार के लिए एक टेम्पलेट बना सकते हैं और फिर टेक्स्टबॉक्स को HTML विशेषताएं जोड़ने के लिए (चेकबॉक्स फोर के साथ समान वाक्यविन्यास) जोड़ सकते हैं। आपको इसे प्रत्येक प्रकार के लिए करना पड़ सकता है जिसे आप समर्थित करना चाहते हैं।

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