2011-09-30 15 views

उत्तर

63

DropDownList सहायक की दूसरा तर्क एक IEnumerable<SelectListItem> होना चाहिए। आप एक स्ट्रिंग पास कर रहे हैं (एक खाली एक और सटीक होना)। तो क्रम में इस सहायक का उपयोग करने के आप उसके हस्ताक्षर का सम्मान करना होगा:

@Html.DropDownList(
    "ListId", 
    Enumerable.Empty<SelectListItem>(), 
    new { style = "width: 250px;" } 
) 

जाहिर है एक खाली ड्रॉपडाउन सूची पैदा कम इस्तेमाल की है।

:

@Html.DropDownList(
    "ListId", 
    Model.MyList, 
    new { style = "width: 250px;" } 
) 

और निश्चित रूप से DropDownListFor सहायक उपयोग करने के लिए आप पसंद करते हैं चाहिए, क्योंकि आप एक दृश्य मॉडल हैं: आप शायद एक दृश्य मॉडल (आप जिस तरह से करना चाहिए) है कि आप करने के लिए बाध्य करने के लिए उपयोग करना चाहते हैं अपने बाहरी सीएसएस में

@Html.DropDownListFor(
    x => x.ListId, 
    Model.MyList, 
    new { @class = "mycombo" } 
) 

जहांनिर्धारित करना होगा:

@Html.DropDownListFor(
    x => x.ListId, 
    Model.MyList, 
    new { style = "width: 250px;" } 
) 

और अंत में शैलियों के साथ अपने HTML को अव्यवस्थित आप एक बाहरी सीएसएस का उपयोग करना चाहिए से बचने के लिएनियम:

.mycombo { 
    width: 250px; 
} 

अब आपके पास एक उचित कोड है।

+0

$$$ .... धन्यवाद !!!!!! – JaJ

+0

क्या किसी भी तरह ViewBag के साथ Model.MyList को प्रतिस्थापित करना संभव है? –

+2

@Peretz, हाँ, यह संभव है, लेकिन ऐसा कुछ नहीं जो मैं अनुशंसा करता हूं। एक दृश्य मॉडल का उपयोग करना एक बेहतर तरीका है। –

1
@Html.DropDownListFor(model => model.Test, 
new SelectList(new List<YourNamespace.Modelname>(), "Id", "Name"), 
null, new { @id = "ddlTest", @style="width: 250px;" }) 
1

एक jQuery तकनीक है कि आप @ Html.DropDownList निर्माता से निपटने के लिए बिना चौड़ाई सेट करने की अनुमति देता है।

<script language="javascript" type="text/javascript"> 
    $(document).ready(function() { 
     $("#ListId").width(300); 
    }); 
</script> 
4

आपको व्यू मॉडल दृष्टिकोण का उपयोग करना चाहिए। हालांकि आलसी तरीका सिर्फ 2 पैरामीटर को एक शून्य देने के लिए है।

@Html.DropDownList("ListId", null, new {style="width: 250px;"}) 
संबंधित मुद्दे