默认DisplayFor
助手只是在页面上抛出一些转义文本。有没有办法将默认值包装在 a 中<span>
或不为要显示的每个属性<div>
编写自定义模板?DisplayFor
而不是喷出来
Foo
我想让它吐出来
<span>Foo</span>
我看过很多关于制作自定义东西的文章;我经常使用这些。但是我的大部分显示内容我只想使用简单的 CSS 处理,其中内容包含在标签中,我找不到有关如何执行此操作的参考,或者即使它是可能的。
默认DisplayFor
助手只是在页面上抛出一些转义文本。有没有办法将默认值包装在 a 中<span>
或不为要显示的每个属性<div>
编写自定义模板?DisplayFor
而不是喷出来
Foo
我想让它吐出来
<span>Foo</span>
我看过很多关于制作自定义东西的文章;我经常使用这些。但是我的大部分显示内容我只想使用简单的 CSS 处理,其中内容包含在标签中,我找不到有关如何执行此操作的参考,或者即使它是可能的。
确保使用“对象”模板并从 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
您可以创建自己的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);