Asp.Net Mvc应用程序中的下拉列表的项目模板

问题描述

是否可以为这样的下拉定义定义Item模板,其中Model.viewmodel.ValuesSelectList。的值是一个简单的对象,例如{string Id,string Name}。我想显示<B>Id</B> Name

<select class="form-control" asp-for="viewmodel.Value" asp-items="Model.viewmodel.Values">
</select>

如果没有。你有什么建议?

解决方法

我建议使用ViewBag

在控制器中

List<SelectListItem> select_list = new List<SelectListItem>();

var query = from li in YourObjectList
select new SelectListItem()
{
      Value = li.Id.ToString(),Text = "<B>"+li.Id.ToString()+"</B>"+li.Name.ToString(),};
select_list = query.ToList();
ViewBag.list = select_list;

然后在视图中

@Html.DropDownList("YourDataModel",ViewBag.list as List<SelectListItem>,new { @class = "form-control" })