0

默认DisplayFor助手只是在页面上抛出一些转义文本。有没有办法将默认值包装在 a 中<span>或不为要显示的每个属性<div>编写自定义模板?DisplayFor而不是喷出来

Foo

我想让它吐出来

<span>Foo</span>

我看过很多关于制作自定义东西的文章;我经常使用这些。但是我的大部分显示内容我只想使用简单的 CSS 处理,其中内容包含在标签中,我找不到有关如何执行此操作的参考,或者即使它是可能的。

4

2 回答 2

2

确保使用“对象”模板并从 ViewData.ModelMetadata.Properties 对象模板中覆盖如下 - Html.Display using ViewBag

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

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

于 2012-06-24T23:44:02.617 回答
1

您可以创建自己的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);
于 2012-06-24T23:43:09.807 回答