我有这个cshtml,它没有突出显示Asp.Net Core标签帮助程序,例如<form>
,<input>
,<span>
,<textarea>
。通过使用@ Html.DisplayFor,我能够部分解决此问题,并且它可以工作。但是否则我不知道这是怎么回事。我的Visual Studio版本是2017 15.8.2,相同的标记助手在另一个项目中为紫色和粗体。
以下是一些代码(cshtml):
<form method="post">
<div asp-validation-summary="All" class="text-danger"></div>
<table>
<tr>
<td>@Html.DisplayNameFor(model => model.NoteModel.NoteName)</td>
<td><input asp-for="NoteModel.NoteName" class="form-control" data-val-required="The NoteName field is required." data-val-maxlength-max="15" data-val="true" /></td>
<td><span asp-validation-for="NoteModel.NoteName" class="text-danger"></span></td>
</tr>
<tr>
<td>@Html.DisplayNameFor(model => model.NoteModel.TranslatedNoteName)</td>
<td><input asp-for="NoteModel.TranslatedNoteName" class="form-control" data-val-required="The TranslatedNoteName field is required." data-val-maxlength-max="100" data-val="true" /></td>
<td><span asp-validation-for="NoteModel.TranslatedNoteName" class="text-danger"></span></td>
</tr>
<tr>
<td>@Html.DisplayNameFor(model => model.NoteModel.NoteText)</td>
<td><textarea asp-for="NoteModel.NoteText"
class="form-control" data-val-required="The NoteText field is required."
data-val-maxlength-max="8000" data-val="true"
data-val-maxlength="The field NoteText must be a string or array type with a maximum length of '8000'."
rows="20" cols="100"></textarea></td>
<td><span asp-validation-for="NoteModel.NoteText" class="text-danger"></span></td>
</tr>
</table>
<div>
Upload an image: <input type="file" name="image" accept=".jpg" />
</div>
<div class="form-group">
<button type="submit" class="btn btn-default">Upload</button>
</div>
</form>
NoteModel类中有数据注释,@ Html.DisplayFor可以正确呈现它们。
有什么想法吗?预先感谢。
更新:
标记未正确呈现到HTML中,所有属性asp-
都保留在HTML中。显然,我在犯一些愚蠢的错误,我无法弄清楚。
答案 0 :(得分:1)
标记助手是一项可选功能。默认情况下,它们对页面不可用。通过在页面上添加@addTagHelper
指令,或更通常在 _ViewImports.cshtml 文件中,可以启用这些指令:
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
检查是否启用了标记助手。
答案 1 :(得分:0)
我正在研究RazorPagesMovie教程,所有粗体从我的taghelpers中消失了。很烦人。我必须关闭VS 2019并重新启动并打开备份项目。这是工作。无论如何暂时如此。