当我将我的选择列表绑定到视图中的下拉列表时,我看到我可以在哪里获得所选值(但在我的情况下,它是一个数字)。有没有办法从选择列表中获取描述/文字?
答案 0 :(得分:0)
这是一种方式:
$(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/
如果页面上有多个选择元素,则需要相应地更改选择器。
答案 1 :(得分:0)
所选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"
}
答案 2 :(得分:0)
不确定我是否理解您的问题,但是:
假设我们想要用于填充下拉列表的集合来自:
public class Animal
{
public int ID { get; set; }
public string Name { get; set; }
}
然后你可以填充你的列表
@Html.DropDownListFor(model => model.AnimalId, new SelectList(AnimalList, "ID", "Name"))
对于上面的示例,ID是“值”,名称将显示为选项。如果你想要反过来 - 只需替换类属性/字段的名称
如果您希望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>
}