簡體   English   中英

使用反射填充下拉列表

[英]Populating Dropdown using Reflection

我正在使用MVC4,我想做的是使用連接到我的搜索框的下拉列表來搜索選定的屬性。 我將如何停留在Text = prop.Name上。 我該如何使用它來訪問和訪問所有屬性。

我的控制器

public ActionResult SearchIndex(string searchString)
    {
        var selectListItems = new List<SelectListItem>();

        var first = db.BloodStored.First();
        foreach(var item in first.GetType().GetProperties())
        {
            selectListItems.Add(new SelectListItem(){ Text = item.Name, Value = selectListItems.Count.ToString()});
        }
        IEnumerable<SelectListItem> enumSelectList = selectListItems;
        ViewBag.SearchFields = enumSelectList;


        var bloodSearch = from m in db.BloodStored
                          select m;

        if (!String.IsNullOrEmpty(searchString))
        {
            bloodSearch = bloodSearch.Where(s => string.Compare(GetValue(s, propertyName), searchString) == 0);
        }
        return View(bloodSearch);
    }

現在,選擇列表正在工作,我只需要遍歷我的搜索字符串以及現在如何傳遞兩個參數。

我不太確定您要問什么。 如果要創建屬性為Text的對象列表,將其設置為對象的屬性名稱,則可以獲取BloodStored枚舉中的第一個對象,並創建匿名類型列表:

// Get one instance and then iterate all the properties
var selectListItems = new List<object>();
var first = db.BloodStore.First();
foreach(var item in first.GetType().GetProperties()){
    selectListItems.Add(new (){ Text = item.Name});
}

ViewBag.SearchFields = selectListItems;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM