默认的DisplayFor
帮助程序只会在页面上抛出一些转义文本。有没有办法将默认值包装在<span>
或<div>
中,而无需为要显示的每个属性编写自定义DisplayFor
模板?而不是它喷出
Foo
我希望它吐出来
<span>Foo</span>
我看过很多关于制作自定义内容的文章;我经常使用它们。但是我的大部分显示内容我只想用简单的CSS来处理,其中内容包含在标签中,我找不到如何执行此操作的参考,或者即使它是可能的。
答案 0 :(得分:2)
确保使用&#39;对象&#39;从ViewData.ModelMetadata.Properties中的模板和覆盖如下 Object template - Html.Display using ViewBag
通过将名为object.cshtml的显示模板应用于具有可数属性的所有类型
指向brad wilsons条目的链接包含主要详细信息 http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-3-default-templates.html
答案 1 :(得分: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);