ASP NET Dropdownlist Extesion Helper Method
ASP NET Dropdownlist ( verileri doldurma işlemi için) Extesion Helper Method yapımını anlatmaya çalışacağım.

DropDownList imizi doldurmak için extension metot yazacağız.
Bunun için yeni bir class oluşturuyoruz.
Helpers > DropDownListHelper.cs

Helper'ımızın kodlarını yazalım..


    public static class DropDownListHelper
    {
        public static IEnumerable<SelectListItem > ToDropDownList(this IEnumerable<T,object> source, Func<T,object> value, Func<T,object> text, string defaultText = null, object selectedValue = null)
        {
            var sourceList = new List<SelectListItem >();
            if (defaultText != null)
                sourceList.Insert(0, new SelectListItem { Value = null, Text = defaultText });  
            foreach (var data in source)
            {
                sourceList.Add(new SelectListItem
                {
                    Value = value(data).ToString(),
                    Text = text(data).ToString(),
                    Selected = value(data).ToString() == (selectedValue ?? "").ToString() 
                });
            }

            return sourceList;

            
        }
    }

Helper'ımızın kodlarını yazdığımıza göre nasıl kullanıcağımıza geçelim.
Id, FirstName,LastName propertylerine sahip Person bir classımız var bu classımızı viewmizde dropdownlist olarak göstermek istiyoruz.
 


     public ActionResult Index()
        {
           
            var person = new Person();
            ViewBag.DropDownList = person.PersonList.ToDropDownList(x => x.Id, x => x.FirstName + " " + x.LastName, "-- Select an option --");
            return View();
        }

Extension metodumuzda this IEnumerable dediğimiz için IEnumerable olan tiplerde bu metodumuz gözükecektir.

(Index.cshtml) View daki kodlarımızı yazalım.

Yöntem 2
Hiç böyle aksiyonlara girmeden hazır olan yapıyı da kullanabiliriz :) SelectList classı yine bize aynı sonucu verecektir.


        public ActionResult Index()
        {
            var person = new Person();
            ViewBag.DropDownList = new SelectList(person.PersonList, "Id", "FirstName");
            return View();
        }

İnşallah birilerinin faydalanması dileğiyle... :)