剃须刀 – MVC6替代@ Html.DisplayFor

前端之家收集整理的这篇文章主要介绍了剃须刀 – MVC6替代@ Html.DisplayFor前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
MVC6引入了标签助手,这是比使用@ Html.EditorFor等更好的方法.但是我没有找到任何标签助手,这将是@ Html.DisplayFor的替代方法. @H_502_2@当然,我可以直接在Razor页面上使用一个变量,例如@ Model.BookingCode.但这不允许控制格式.

@H_502_2@使用MVC6,显示模型属性值的概念正确方法是什么?

解决方法

你可以创建自己的标签助手
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);
        }
    }
}
@H_502_2@添加使用它在视图中:

<p asp-for="MyProperty" class="form-control-static"></p>

猜你在找的HTML相关文章