#asp.net #asp.net-mvc
#asp.net #asp.net-mvc
Вопрос:
когда я привязываю свой список выбора к выпадающему списку в представлении, я вижу, где я могу получить выбранное значение (но в моем случае это число). есть ли способ, которым я могу получить описание / текст из списка выбора?
Комментарии:
1. Не могли бы вы уточнить свой вопрос, пожалуйста..
Ответ №1:
Вот один из способов:
$(function() {
$('select').change(function() {
alert($('select option:selected').text());
});
});
<select>
<option value="0">Zero</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
Рабочий jsfiddle:http://jsfiddle.net/wherC /
Если у вас на странице есть несколько элементов выбора, вам нужно соответствующим образом изменить селектор.
Ответ №2:
Значение выбранного option
— это то, что будет передано в качестве ключа формы списка выбора.
Пример
<select name="list1">
<option selected value="1">one</option>
</select>
создаст ключ list1=1
Если вам нужно описание, привяжите описание к значению списка выбора.
<select name="list1">
<option selected value="one">one</option>
</select>
создаст ключ list1=one
Если вы используете SelectListItem
этот параметр будет:
new SelectListItem {
Text = "one",
Value = "one"
}
Ответ №3:
Не уверен, понял ли я ваш вопрос, но :
Предполагая, что наша коллекция, которую мы хотим использовать для заполнения нашего выпадающего списка, состоит из :
public class Animal
{
public int ID { get; set; }
public string Name { get; set; }
}
Тогда вы можете заполнить свой список следующим образом
@Html.DropDownListFor(model => model.AnimalId, new SelectList(AnimalList, "ID", "Name"))
Для примера выше ID — это «Значение», и имя будет отображаться в качестве опции для выбора. Если вы хотите, чтобы было наоборот — просто замените имена свойств / полей класса
Если вы хотите, чтобы в выпадающем списке отображались как идентификатор, так и имя, чтобы создать
<option value="1">1 - Horse</option>
Я бы выбрал
@Html.EditorFor(model => model.id, "PickAnimalTemplate", new { animals = ViewBag.Animals})
который определяет пользовательский EditorTemplate для этого свойства, где вы можете в значительной степени делать все, что хотите, с макетом, например :
@foreach (var item in animals)
{
<option value="@item.ID">@item.ID - @item.Name</option>
}