2012-02-08 14 views
23

मैं इस प्रकार एक क्षेत्र आईडी स्थापित करने के लिए कोशिश कर रहा हूँ के साथ Html.EditorFor का उपयोग कर आईडी सेट:कैसे कर सकते हैं मैं MVC3

@Html.EditorFor(x => x.Order, new { id = string.Format("Order_{0}", Model.Row) }) 

लेकिन यह निम्नलिखित में परिणाम है और यह मेरी आईडी सेट नहीं किया जा रहा है लगता है:

<input type="text" value="334" name="item.Order" id="item_Order" class="text-box single-line"> 

क्या किसी को पता है कि मैं क्या गलत कर रहा हूं। मैंने EditorFor के लिए स्वीकार्य प्रारूपों की जांच की और उदाहरणों के लिए Google पर देखा लेकिन मुझे जो भी चाहिए, उससे मेल खाने वाली कुछ भी नहीं दिखाई दे रही थी।

+0

'आईडी' से पहले '@' जोड़ें '@ id =' – Hadas

+0

आईडी सी # में कोई कीवर्ड नहीं है, इसलिए @ का उपयोग करने की कोई आवश्यकता नहीं है, यह केवल @class – Jaap

उत्तर

30

आप दृश्य डेटा के लिए

@Html.TextBoxFor(x => x.Order, new { id = string.Format("Order_{0}", Model.Row) }) 

@Html.EditorFor के दूसरे पैरामीटर है में बदल जानी चाहिए, एचटीएमएल विशेषताओं के लिए नहीं

+0

जैसे कीवर्ड के साथ आवश्यक है। यह बहुत अच्छा काम किया। अब मैं सोच रहा हूं कि एचटीएमएल.एडिटरफ़ोर और एचटीएमएल के बीच क्या अंतर है। टेक्स्टबॉक्स फोर। क्या अंतरफलक टेम्पलेट का उपयोग करता है? –

+1

हां, संपादक के लिए कस्टम प्रकार/टेम्पलेट के लिए है। – dohaivu

+21

लेकिन मूल प्रश्न के बारे में क्या? क्या होगा यदि आप चाहते हैं/EditorFor का उपयोग करने की आवश्यकता है - फिर आईडी सेट करने के लिए कैसे? – JonK

2

मुझे यकीन नहीं है कि अगर आप जोरदार टाइप किए गए सहायकों का उपयोग करते समय आईडी विशेषता को ओवरराइड कर सकते हैं। लेकिन आप अन्य गैर-मॉडल प्रकार का उपयोग कर सकते हैं:

@Html.Editor(string.Format("Order_{0}", Model.Row), Model.Order) 

यह आईडी और दूसरा डिफ़ॉल्ट मान के रूप में पहले पैरामीटर का उपयोग करेगा।

3

आप अपने x.Order के लिए एक संपादक टेम्पलेट बनाने की कोशिश की है?

अपने संपादक टेम्पलेट पर इस राशि:

<input type="text" id="@ViewData["id"]"> 

और आपके विचार पृष्ठ पर इस का उपयोग करें:

@Html.EditorFor(x => x.Order, new { id = string.Format("Order_{0}", Model.Row) }) 
13
@Html.EditorFor(x => x.Order, null, string.Format("Order_{0}", Model.Row)) 
+5

यह स्वीकार्य उत्तर होना चाहिए क्योंकि यह वास्तव में पूछे जाने वाले प्रश्न का उत्तर देता है, इसे बदलने के बजाय। – ChrisFox

3

मैं जानता हूँ कि इस सवाल का बहुत पुराना है, लेकिन सभी मैं ऐसा करने की जरूरत है निम्नलिखित था:

@Html.EditorFor(modelItem => item.EndDate, 
       new { htmlAttributes = new { @class = "form-control", @id = @endID } }) 

आप इसे जो भी कक्षाएं या आईडी चाहते हैं उसे दे सकते हैं।

string endID = "end-" + @item.ID; 

उम्मीद है कि यह भविष्य में किसी को मदद करता है: मैं अपने पेज में इस पहले के साथ-साथ प्रत्येक आइटम के लिए एक अलग आईडी बनानी होगी।

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