addTagHelper Html.GetEnumSelectList不起作用

时间:2019-06-26 15:23:33

标签: asp.net-mvc asp.net-core

经过长时间的中断后才重新开始编码...我试图使用Html.GetEnumSelectList <>从枚举中显示一个列表,但是Visual Studio 2019似乎无法识别(没有intellisense),并且代码是不工作。

@using AspNetCoreVideo.Models
@model AspNetCoreVideo.Entities.Video
@addTagHelper *, Microsoft.aspnetcore.mvc.taghelpers

<h2>Create Vidio</h2>
<form asp-action="Create" method="post">

<table>
    <tr>
        <td><label asp-for="Title"></label></td>
        <td><input asp-for="Title" /></td>
    </tr>
    <tr>
        <td><label asp-for="Genre"></label></td>
    <    td><select asp-for="Genre" asp-items="Html.GetEnumSelectList<Genres>()"></select></td>
    </tr>
</table>

<input type="submit" value="Create" />

</form>

期望显示“流派”列表,但是列表中什么都没有。

3 个答案:

答案 0 :(得分:2)

我也遇到了类似的问题,选择没有显示任何内容。后来发现是因为使用了select标签。如果您将它用作像 <select /> 这样的单个元素,它将无法正常工作。您必须将其用作 <select></select> 希望这会对某人有所帮助。

答案 1 :(得分:0)

之所以没有智能感知,是因为您没有以@作为前缀,所以它只是纯文本。您只需要@上的asp-for。那是因为它接受模型表达式,而类似asp-items的东西则需要某个集合的实际实例。换句话说:

<select asp-for="Genre" asp-items="@Html.GetEnumSelectList<Genres>()"></select>

答案 2 :(得分:0)

问题已解决。显然,@ addTagHelper指令区分大小写。我将“ @addTagHelper *,Microsoft.aspnetcore.mvc.taghelpers”更改为“ @addTagHelper *,Microsoft.AspNetCore.Mvc.TagHelpers”,现在标记帮助程序可以正常工作。