加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

剃须刀 – MVC6替代@ Html.DisplayFor

发布时间:2020-12-14 18:58:17 所属栏目:资源 来源:网络整理
导读:MVC6引入了标签助手,这是比使用@ Html.EditorFor等更好的方法.但是我没有找到任何标签助手,这将是@ Html.DisplayFor的替代方法. 当然,我可以直接在Razor页面上使用一个变量,例如@ Model.BookingCode.但这不允许控制格式. 使用MVC6,显示模型属性值的概念正确
MVC6引入了标签助手,这是比使用@ Html.EditorFor等更好的方法.但是我没有找到任何标签助手,这将是@ Html.DisplayFor的替代方法.

当然,我可以直接在Razor页面上使用一个变量,例如@ Model.BookingCode.但这不允许控制格式.

使用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);
        }
    }
}

添加使用它在视图中:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读