2015-04-21 2 views
0

У меня есть выпадающее меню, когда я выбираю любой элемент, который он отправляет свой идентификатор модели, пока я хочу отправить текст выбранного элемента. Как я могу это сделать? мой код, который посылает идентификатор выбранного элемента и я также POSTING код метода выбран item.please помочь мне, где я не правКак получить текст выделенного элемента выпадающего списка в Asp.net MVCrazor

Просмотр

<div class="controls"> 
    <label class="site-label">Assign to</label> 
    @Html.DropDownListFor(m => m.AssignedTo, (ViewBag.DispatchersList) as IEnumerable<SelectListItem>, new { @class = "" }) 
    @Html.ValidationMessageFor(m => m.AssignedTo) 
</div> 

контроллер

public static object GetSelectListWithSelectOption(dynamic model, int selected, string valuefield, string textfield, bool addSelect = true, string addSelectValue = "-1", bool performSort = false) 
{ 
    List<SelectListItem> selectList = null; 
    if (model != null) 
    { 
     selectList = new SelectList(model, valuefield, textfield, selected).ToList(); 
     if (performSort) 
      selectList = selectList.OrderBy(x => x.Text).ToList(); 
    } 
    else 
    { 
     selectList = new List<SelectListItem>(); 
    } 
    if (addSelect) 
     selectList.Insert(0, new SelectListItem { Text = Cygnus.Library.Resources.General.txtSelect, Value = addSelectValue, Selected = true }); 
    return selectList; 
} 
+0

Затем сделайте 'Text' собственность и' value' свойство объекта 'SelectList' тот же -' SelectList = новый SelectList (модель, TextField, TextField) '. Обратите внимание, что нет смысла добавлять 4-й параметр - вы привязываетесь к свойству, поэтому его просто игнорируют. –

+0

это работает.Спасибо alot – ARC

+0

Извините, что быть суровым, но это самый бессмысленный код, который я видел в течение длительного времени. Ваш метод создает 'SelectList', но вы возвращаете его как' object', что означает, что вам нужно снова его добавить. Ваш метод принимает 'dynamic', но' SelectList' принимает 'IEnumerable', что означает, что вы можете создать исключение. Параметр 'int selected' бессмыслен, потому что его игнорируют при привязке к модели. –

ответ

3

Чтобы отправить текст обратно, просто заполните Value недвижимость SelectListItems с тем же значением, которое вы предоставляете недвижимости Text.

public static object GetSelectListWithSelectOption(dynamic model, int selected, string valuefield, string textfield, bool addSelect = true, string addSelectValue = "Selected Item Text", bool performSort = false) 
{ 
    List<SelectListItem> selectList = null; 
    if (model != null) 
    { 
     selectList = new SelectList(model, textfield, textfield, selected).ToList(); 
     if (performSort) 
      selectList = selectList.OrderBy(x => x.Text).ToList(); 
    } 
    else 
    { 
     selectList = new List<SelectListItem>(); 
    } 
    if (addSelect) 
     selectList.Insert(0, new SelectListItem { Text = Cygnus.Library.Resources.General.txtSelect, Value = Cygnus.Library.Resources.General.txtSelect, Selected = true }); 
    return selectList; 
} 
+0

Не могли бы вы дать некоторый код. Я не получаю – ARC

+0

@ User123 Я обновил ответ с помощью некоторого кода. –

+0

Спасибо @ Константин Динев – ARC

Смежные вопросы