2012-08-22 19 views
6

मैं अपने मॉडल वर्ग के कुछ विशेषताओं के लिए एक ड्रॉप डाउन सूची जेनरेट करना चाहता हूं। मैं एक एमवीसी .NET अनुप्रयोग पर काम कर रहा हूं और मैं विचारों के लिए रेजर इंजन का उपयोग कर रहा हूं।ड्रॉपडाउन सूची एएसपी एमवीसी

public class present 
{  
    public DateTime jour { get; set; } 
    public int entree_mat_h { get; set; } 
    public int entree_mid_h { get; set; } 
    public int sortie_mat_h { get; set; } 
    public int sortie_mid_h { get; set; } 
    public int entree_mat_m { get; set; } 
    public int entree_mid_m { get; set; } 
    public int sortie_mat_m { get; set; } 
    public int sortie_mid_m { get; set; } 
    public string mac { get; set; } 
    public string ip { get; set; } 
} 

उदाहरण के लिए, मैं एक सूची नीचे प्रत्येक विशेषता एक पूर्णांक है कि के लिए 60 0 से मूल्यों के साथ ड्रॉप दिखाना चाहते हैं: यहाँ मेरी कक्षा है। क्या @ html.dropdownlistfor() इस मामले में काम करता है?

+1

उपयोग '@ html.dropdownlist()' – Doomsknight

+1

कैसे यह मेरे मामले में उपयोग करने के लिए? –

+0

यदि नियंत्रक में आप एक सूची बनाते हैं जिसमें 'मान' और' टेक्स्ट' चर होते हैं, तो आप इसका उपयोग कर सकते हैं। या आप '@ html.dropdownlist()' –

उत्तर

8

संभावित मान के अपने दृष्टिकोण को घोषित सूची, आपके मामले में में 0 से 60

@{ var values = new SelectList(Enumerable.Range(0, 60)); } 

तब करने के लिए, आप DropDownListFor सहायक

@Html.DropDownListFor(m => m.entree_mat_h, values) 
@Html.DropDownListFor(m => m.entree_mid_h, values) 
.... 
+0

यह एक बहुत साफ तरीका है तो मैंने इसे कैसे किया। –

0

हां, लेकिन आपको इच्छित मूल्यों के साथ इसमें एक कस्टम चयन सूची पारित करने की आवश्यकता होगी।

तो तुम कुछ इस तरह करना होगा:

@Html.DropDownListFor(x => x.Quantity, @Model.Quantity) 

:

var list = new List<SelectListItem>(); 

    for(int i=1; i < 61; i++) 
    { 
     list.Add(new SelectListItem{Text = i, Value = i}); 
    } 

    var sl = new SelectList(items, "Value", "Text"); 

तो फिर तुम आप क्या करेंगे निम्नलिखित

तो मॉडल है कि पारित करने के लिए ध्यान में रखते हुए की आवश्यकता होगी या उनके जैसे की कुछ और।

स्पष्ट रूप से मैंने नकली नामों का उपयोग किया है, इसलिए आपको इसे अपने मॉडल के अनुरूप बनाना होगा।

+0

का उपयोग कर सकते हैं मुझे क्रॉलिक्स संस्करण पसंद है, जो बहुत अधिक है। –

0

उपयोग के निर्माण के लिए इस विस्तार विधि में उपयोग कर सकते हैं अपने स्रोत से ड्रॉपडाउन सूची (कुंजी और मूल्य पर प्रक्षेपित सभी मानों का चयन करें)। उदाहरण

public static IEnumerable<SelectListItem> ToDropDown<TSource>(this IEnumerable<TSource> source, Func<TSource, string> keySelector, Func<TSource, string> elementSelector, Func<TSource,bool> selected) 
     { 
      if (source == null) 
      { 
       return new List<SelectListItem>(); 
      } 
      return source.Select(c => new SelectListItem { Value = keySelector(c), Text = elementSelector(c), Selected = selected(c) }).ToList(); 
     } 

अपने viewBag

ViewBag.Languages = languageRepository().GetAll().ToList().ToDropDown(c => c.ID, c => c.Description, c => c.ID == "EN"); 

भरने और अंत में उस्तरा

@Html.DropDownList("ddLanguages", (IEnumerable<SelectListItem>)ViewData.Languages, "Please Select") 
संबंधित मुद्दे