MVC6引入了标签助手,这是比使用@
Html.EditorFor等更好的方法.但是我没有找到任何标签助手,这将是@ Html.DisplayFor的替代方法.
当然,我可以直接在Razor页面上使用一个变量,例如@ Model.BookingCode.但这不允许控制格式.
解决方法
你可以创建自己的标签助手
namespace MyDemo.TagHelpers { [HtmlTargetElement("p",Attributes = ForAttributeName)] public class DisplayForTagHelper : TagHelper { private const string ForAttributeName = "asp-for"; [HtmlAttributeName(ForAttributeName)] public ModelExpression For { get; set; } public override void Process(TagHelperContext context,TagHelperOutput output) { if (context == null) { throw new ArgumentNullException(nameof(context)); } if (output == null) { throw new ArgumentNullException(nameof(output)); } var text = For.ModelExplorer.GetSimpleDisplayText(); output.Content.SetContent(text); } } }
添加使用它在视图中:
<p asp-for="MyProperty" class="form-control-static"></p>