繁体   English   中英

MVC3:设置默认的DisplayFor模板

[英]MVC3: set default DisplayFor template

默认的DisplayFor帮助器只会在页面上引发一些转义的文本。 有没有一种方法可以将默认值包装在<span><div>而无需为要显示的每个属性编写自定义DisplayFor模板? 而不是喷涌而出

Foo

我要吐出来

<span>Foo</span>

我看过很多有关制作自定义内容的文章。 我经常使用这些。 但是我的大部分显示内容我都只想使用简单的CSS处理,其中内容包装在标签中,即使有可能,我也找不到参考资料。

确保使用“对象”模板,并从ViewData.ModelMetadata.Properties 对象模板-Html.Display使用ViewBag进行如下重写

通过将显示模板命名为object.cshtml,您将适用于具有多种属性的所有类型

有一个指向brad wilsons条目的链接,其中包含主要详细信息http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-3-default-templates.html

您可以创建自己的HtmlHelper扩展

public static class HtmlHelperExtensions
{
    public static MvcHtmlString EnhancedDisplayFor<TModel, TValue>(this HtmlHelper<TModel> html, Expression<Func<TModel, TValue>> expression)
    {
        var stringBuilder = new StringBuilder("<span>");
        stringBuilder.Append(html.DisplayFor(expression));
        stringBuilder.Append("</span>");
        return new MvcHtmlString(stringBuilder.ToString());
    }
}

然后像这样使用它

@Html.EnhancedDisplayFor(model => model.MyProperty);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM