我正在将我的自定义 Web 应用程序模板更改为 Visual Studio 以使用 .Net Core 和 MVC 6。
在我的注册屏幕上,我的性别下拉菜单不会显示“选择性别”,这无疑是因为 MVC 6 标签与 MVC 5 的工作方式略有不同。
在我当前的模板中,使用下面的代码可以完美运行并显示如下所示
@Html.DropDownListFor(m => m.Gender,
new SelectList(Enum.GetValues(typeof(Gender))),
"Select Gender",
new
{
@class = "form-control",
id = "validation-gender"
})
我尝试了几次不同的迭代,但要么出错,要么下面显示的当前版本有效,但不显示“选择性别”。
MVC 6 版本
<select asp-for="Gender" class="form-control" id="validation-gender"
asp-items="@(new SelectList(Enum.GetValues(typeof(Gender)),"Select Gender"))">
</select>
有人可以告诉我如何在 MVC 6 版本中显示“选择性别”吗?
最佳答案
您需要添加 null <option>
在您的 <select>
中手动添加元素标签
<select asp-for="Gender" class="form-control" id="validation-gender"
asp-items="@(new SelectList(Enum.GetValues(typeof(Gender)),"Select Gender"))">
<option value="">Select Gender</option>
</select>
作为旁注,您也可以使用 asp-items="Html.GetEnumSelectList<Gender>()">
而不是 asp-items="@(new SelectList(Enum.GetValues(typeof(Gender))
这还具有尊重任何 [Display]
的额外优势属性适用于您的 enum
值(value)观
关于c# - 在.Net Core 2.0中使用MVC6选择标签不显示占位符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46998584/