【发布时间】:2020-07-04 07:44:18
【问题描述】:
我已经按照this question 中的答案进行了操作,但我只得到了字符代码,例如&#xf007; 在我的<option>s 中以纯文本形式显示。
在我的控制器中,我为 SelectList 填充项目:
public IActionResult Create()
{
ViewData["Icons"] = IconsDropdown();
return View();
}
private SelectList IconsDropdown()
{
List<ListItem> list = new List<ListItem>()
{
new ListItem{ Text = "", Value = "fa-user" },
new ListItem{ Text = "", Value = "fa-user-tie" },
// and so on...
};
return new SelectList(list, "Value", "Text");
}
class ListItem
{
public string Text { get; set; }
public string Value { get; set; }
}
然后我将列表项分配给视图中的select:
<select asp-for="Icon" class="form-control select-fontawesome" asp-items="ViewBag.Icons">
<option selected disabled value="">Choose icon</option>
</select>
我也尝试删除 form-control 类,但结果相同。
设置字体的 CSS:
.select-fontawesome {
font-family: 'FontAwesome', 'sans-serif';
}
如果我尝试在普通文本中显示 FontAwesome 图标,它会起作用:
<span class="fas fa-user"></span>
更新
感谢@MBaas 指出我需要<select> 上的fa 类和<option>s 上的style="font-weight:900;"。
但是使用 tag-helper,无法在<option>s 上设置样式,因此该解决方案不起作用。
我一直在寻找一种使用@Html.DropDownListFor() 代替标签助手的方法,但到目前为止我还没有发现它可以让我将css 样式添加到<option>s。我可以在<select>-tag 上设置一个类,仅此而已:
@Html.DropDownListFor(m =>
m.Icon,
ViewBag.Icons,
"Choose icon",
new { @class= "form-control fa" })
【问题讨论】:
-
您要设置哪些 CSS 样式? ...请注意,使用 CSS 几乎不可能对表单元素进行样式设置,
option可能是最糟糕的,因为几乎没有什么可以用它来完成,并且使用例如标签助手无法克服这一点。 -
@Ason 我正在尝试设置
font-weight:900。 -
这是你要找的东西吗:stackoverflow.com/questions/104458/…
-
@Ason 不,那是
CheckBoxList。这不是下拉菜单 (<select>)。 -
@Ason 其他两个问题都没有涵盖我的要求。请重新打开我的问题。
标签: c# css asp.net-core-mvc