我正在动态使用自定义下拉列表和绑定元素,但在这里我想在下拉列表的每个项目上显示工具提示消息。
查看代码:
@Html.DropDownListFor(m => m.Industry,Model.IndustryList, "All", new { @style = "width:258px;", @class = "drpDown" })
控制器代码:
IEnumerable<SelectListItem> IndustryList= EntityModel<T>.Where(m => m.t == “something”).ToList().Select(c => new SelectListItem { Text = t.Name, Value = t.Value);
因此,请告诉我有没有办法在select tag中的每个选项上设置标题。
答案 0 :(得分:2)
不,标准Html.DropDownListFor
帮助程序不支持在<option>
标记上设置除标准属性(value
和selected
)之外的任何属性。您可以编写自定义帮助程序来实现此目的。您可以查看this example
以及this one
。
答案 1 :(得分:1)
我也可能会选择Darin的答案,你需要一个自定义下拉列表。
快速(和脏)替代方法可能是手动循环并创建选择列表并在选项上设置标题值。
在您的控制器上,可能会填充视图模型(我只是使用匿名对象作为示例):
var SelectListViewModel = new[] {
new {
Text = "One",
Title = "I'm One Title",
Value = "1"
},
new {
Text = "Two",
Title = "I'm Two Title",
Value = "2"
}
};
并在您看来:
<select>
@foreach (var item in SelectListViewModel)
{
<option title="@item.Title" value="@item.Value">@item.Text</option>
}
</select>
不是最干净的,但希望对某人有帮助。