2011-06-07 5 views
6

मैं एएसपीनेट एमवीसी 3 का उपयोग कर एक एप्लीकेशन बना रहा हूं और मुझे आश्चर्य है कि बिल्ड-इन एचटीएमएल फॉर्म फ़ील्ड हेल्पर्स के अंतराल को भरने के लिए कोई भी महान पुस्तकालय जानता है?क्या किसी को भी लापता एमवीसी 3 एचटीएमएल फॉर्म फ़ील्ड हेल्पर्स के लिए एक महान पुस्तकालय है?

उदा। एक पाठ बॉक्स बनाने आसान है:

@Html.EditorFor(model => model.TextboxTest) 

लेकिन एक ड्रापडाउन सूची बनाने के लिए मैं लिखने के लिए है:

@Html.DropDownListFor(model => model.DropdownTest, Model.DropdownTestData) 

और यह की तरह

@Html.EditorFor(model => model.DropdownTest) 

जहां DropdownTest एक selectList है लिखा जाना चाहिए।

इसके लिए एक उदाहरण समाधान है जो here पाया जा सकता है।


यह रेडियोबूटन की एक सूची है: यह एमवीसी (फिलहाल) में शामिल नहीं है। एक और अच्छा समाधान here पाया जा सकता है और इस समाधान के साथ मैं समाधान उपलब्ध हैं, लेकिन एक पुस्तकालय में संरचित नहीं (क्रमशः मैं नहीं था '

@Html.RadioButtonListFor(model=>model.Item,Model.ItemList) 

तो वहाँ

लिखने में सक्षम हो जाएगा टी एक पाया) और मैं इस समाधान को टुकड़े से टुकड़े टुकड़े और पेस्ट नहीं करना चाहता (क्योंकि मैं इसे आसानी से NuGet उदाहरण के साथ अपडेट नहीं कर सकता), एक पूरी लाइब्रेरी बेहतर होगी लेकिन मुझे कोई नहीं मिला।

मदद कृपया :)

+1

यदि '@ Html.EditorFor (model => model.DropdownTest) को एक ड्रॉपडाउन सूची प्रस्तुत करना पड़ा जहां 'ड्रॉपडाउनटेस्ट' एक चयनसूची है, तो यह ड्रॉपडाउनलिस्ट किस संपत्ति से जुड़ जाएगी? एक कारण है कि DropDownListFor सहायक दो तर्क लेता है: मॉडल सूची के लिए उपयोग करने के लिए एक सूची और एक संपत्ति और इस सूची के लिए डिफ़ॉल्ट मान प्रदान करती है। तो मैं इस तरह के सहायक के अस्तित्व के खिलाफ पूरी तरह से होगा क्योंकि यह समझ में नहीं आता है। जहां तक ​​'रेडियोबटन लिस्टफ़ोर' सहायक का संबंध है, इस तरह के सहायक को लागू करने के लिए कोड की कुछ पंक्तियां हैं। उम्मीद है कि यह vNext में शामिल किया जाएगा। –

उत्तर

2

विभिन्न स्थानों से उन समाधानों ले लो तुम उन्हें इस्तेमाल करते हैं और उन्हें अपने खुद के पुस्तकालय में डाल करना चाहते हैं। और यदि आप अपने पुस्तकालयों को प्रबंधित करने के लिए NuGet का उपयोग करना चाहते हैं, तो आप उस लाइब्रेरी को पकड़ने के लिए अपना स्वयं का NuGet रिपोजिटरी बना सकते हैं। आप अपने NuGet पैकेज को एमवीसी पुस्तकालयों पर निर्भर कर सकते हैं, इसलिए आपको कभी भी अपने पैकेज को खींचने की आवश्यकता है और इसमें एमवीसी 3 शामिल होगा।

+1

हां लेकिन फिर ** मैं ** वह व्यक्ति हूं जिसने लाइब्रेरी को अपडेट करना है - मैंने सोचा कि यह किसी और को कर सकता है :) यदि वास्तव में ऐसी कोई पुस्तकालय उपलब्ध नहीं है तो मैं इसके लिए एक ओपन सोर्स प्रोजेक्ट शुरू करूंगा। – Marc

1

हालांकि उनके लिए उपयोगकर्ता अनुभव काफी अलग है, ड्रॉप डाउन सूची और रेडियो बटन सूची के बीच कोई कार्यात्मक अंतर नहीं है। दोनों "विकल्पों की सूची से एक का चयन करें" नियंत्रण हैं। एक सामान्य संपादक कैसे() किसी भी परिदृश्य में आप जानना चाहते हैं? सबसे अच्छा, आप की तरह

@Html.EditorFor(model => model.DropdownTest, model.DropDownTestData, ListType.DropDownList) 

कुछ जो नहीं की तुलना में उल्लेखनीय रूप से बेहतर

@Html.DropDownListFor(model => model.DropdownTest, Model.DropdownTestData) 

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

संक्षेप में, मुझे लगता है कि इस कार्यक्षमता प्रदान करने वाली कोई भी लाइब्रेरी वर्तमान विधियों की तुलना में जटिल (अगर मोरेसो नहीं) होगी।

+0

शायद आप सही हैं लेकिन मैं प्रत्येक इनपुट नियंत्रण के लिए Html.EditorFor का उपयोग करने का एक तरीका खोज रहा हूं। ड्रॉपडाउन या रेडियो के बीच स्विच ViewModel में UIHint विशेषता द्वारा किया जा सकता है। और वहां आपको UIHint को सूची लोड करना है - यह संभव है लेकिन मुश्किल है। मैं दृश्य और निर्णय को अलग करना चाहता हूं जो संपादक को जितना संभव हो सके एक तत्व के लिए उपयोग किया जाता है। यह जटिल है, मैं पूरी तरह से सहमत हूं, लेकिन यही कारण है कि मैं इसे अपने आप से कोड नहीं करना चाहता ... :-) – Marc

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