c# - Html.EnumDropdownListFor: Showing a default text -


मेरे विचार में मेरे पास (asp.Net MVC 5.1 में एक नई सुविधा है)।

 < कोड> @ Html.EnumDropDownListFor (m = & gt; m.SelectedLicense, new {@ class = "form-control"})  

अगर मैं उपरोक्त कोड निष्पादित करता हूं तो मुझे नीचे दिए गए कोड के लिए ड्रॉपडाउन सूची मिलती है Enum।

  सार्वजनिक enum LicenseTypes {ट्रायल = 0, पेड = 1}  

लेकिन डिफ़ॉल्ट रूप से मैं चाहता हूं कि मेरे ड्रॉपडाउन सूची में मान (कस्टम टेक्स्ट) और यह वही है जो मैंने कोशिश की

  @ html.EnumDropDownListFor (m = & gt; m.SelectedLicense, "एक लाइसेंस चुनें", नया {@ class = "form-control"})  

लेकिन अब समस्या यह है जब मैं इसे चलाता हूं, मेरी ड्रॉपडाउन सूची इस तरह दिखती है छवि विवरण दर्ज करें यहाँ इसलिए, डिफ़ॉल्ट टेक्स्ट मैं दिखाना चाहता हूं डिफ़ॉल्ट रूप से दिखाई नहीं देता अगर कोई उपयोगकर्ता "लाइसेंस चुनें" का चयन करता है और फॉर्म जमा करने का प्रयास करता है, तो यह "एक लाइसेंस का चयन करें" कहकर एक त्रुटि दिखाता है लेकिन यह डिफ़ॉल्ट पाठ के रूप में नहीं दिखाता है। कुछ मुझे बदलने की जरूरत है?

पी: छवि जब यह लोड होता है तो पृष्ठ का स्क्रीनशॉट है। डिफ़ॉल्ट रूप से यह चयनित विकल्प के रूप में परीक्षण दिखाएगा।

अनुक्रमणिका लाइसेंस प्रकार से शुरू 1 नहीं 0 नीचे की तरह:

  सार्वजनिक enum LicenseTypes {ट्रायल = 1 , पेड = 2}  

फिर आप निम्न तरह से चयनित लाइसेंस प्रकार को मान्य करने के लिए रेंज विशेषता का उपयोग कर सकते हैं:

  सार्वजनिक वर्ग YourViewModel {// अन्य गुण (श्रेणी (1, int.MaxValue, त्रुटि संदेश = "सही लाइसेंस का चयन करें")] सार्वजनिक लाइसेंसटाइजेंस लाइसेंस प्रकार {प्राप्त करें; सेट; अंत में, आपके विचार में:  
  @ Html.EnumDropDownListFor (m = & gt; m.LicenseTypes, "एक लाइसेंस चुनें", नया { @ वर्ग = "फॉर्म-कंट्रोल"}) @ एचटीएमएल। वैधता संदेश (एम = & gt; m.LicenseTypes)  

Comments