简单:没有用于显示的标签助手。
扩展:
对于输入之类的东西使用标签助手是有意义的:有与之相关的特定 HTML 标签。显示后事情变得更加模糊。每个开发人员可能希望使用不同的标签进行显示:span
, strong
, th
, dt
等等。这里没有一刀切的方法。您甚至可能根本不需要标签。默认情况下Html.DisplayFor
and Html.DisplayNameFor
仅输出值,不带任何标签。
此外,这些是模板化的帮助程序,这意味着您作为开发人员实际上可以将模板添加到Views\Shared\DisplayTemplates
并自定义事物的显示方式。例如,您可以在String.cshtml
查看那里,类似:
@model string
<strong>@Model</strong>
现在,使用显示的任何字符串属性Html.DisplayFor
会被包裹在strong
标签。使用标签助手无法实现这种级别的定制。
EDIT
FWIW,如果您确实想使用标签助手,您可以添加自己的标签助手。例如:
public class DisplayNameTagHelper : TagHelper
{
public ModelExpression For { get; set; }
public override void Process(TagHelperContext context, TagHelperOutput output)
{
output.TagName = "strong";
output.Content.SetContent(For.Metadata.DisplayName);
}
}
那么在你看来:
<display-name for="MyProperty" />
写一个DisplayTagHelper
在概念上类似,但有点困难。您可以从中获取值For.Model
。然而,这被输入为object
。使用可用信息For.Metadata
,您需要确定您实际正在使用的内容,并且可能有一些不同的分支来根据类型以不同的方式显示内容。还有For.Metadata.DataFormatString
需要考虑小数、日期时间等。