【发布时间】:2019-09-06 15:58:43
【问题描述】:
我最近使用 Razor Pages 开始了我的第一个项目,我正在使用 EF Core 并将我的所有模型搭建到 CRUD Razor Pages 中。我注意到的是,生成的创建和编辑 Razor 页面使用标签助手来显示数据。即
<div class="form-group">
<label asp-for="ViewModel.Name" class="control-label"></label>
<input asp-for="ViewModel.Name" class="form-control" />
<span asp-validation-for="ViewModel.Name" class="text-danger"></span>
</div>
而索引、详细信息和删除页面使用 Html 助手来显示数据。即
<dt>
@Html.DisplayNameFor(model => model.ViewModel.Name)
</dt>
<dd>
@Html.DisplayFor(model => model.ViewModel.Name)
</dd>
这个来自 Microsoft 的 link 说:“Tag Helpers 减少了 Razor 视图中 HTML 和 C# 之间的显式转换。在许多情况下,HTML Helpers 为特定 Tag Helper 提供了一种替代方法,但重要的是要认识到 Tag Helpers不要替换 HTML Helper,并且每个 HTML Helper 都没有一个 Tag Helper。"。
当然,这些基本的显示字段可以通过 Tag Helpers 显示。在我看来,这似乎是一种相当轻率的不一致,我认为主要使用标签助手和仅在绝对必要时使用 Html 助手会是更好的做法。
我认为开发人员这样做是有原因的,但这可能是什么让我无法理解。任何人都可以帮我解释一下吗?
【问题讨论】:
标签: asp.net-core html-helper razor-pages scaffolding tag-helpers