我找不到关于数据注释的广泛资源,有很多例子。
[ScaffoldColumn(false)]
public int ReadCount { get; set; }
我想用 显示ReadCount
,DisplayForModel
我不想在EditorForModel
. 我怎样才能做到这一点?这可能吗?
谢谢。
我找不到关于数据注释的广泛资源,有很多例子。
[ScaffoldColumn(false)]
public int ReadCount { get; set; }
我想用 显示ReadCount
,DisplayForModel
我不想在EditorForModel
. 我怎样才能做到这一点?这可能吗?
谢谢。
一种可能性是编写一个自定义Object display template
( ~/Views/Shared/DisplayTemplates/Object.cshtml
),即使您已[Scaffold(false)]
在属性上设置,它也只会显示该值:
@if (Model == null)
{
@ViewData.ModelMetadata.NullDisplayText
}
else if (ViewData.TemplateInfo.TemplateDepth > 1)
{
@ViewData.ModelMetadata.SimpleDisplayText
}
else
{
foreach (var prop in ViewData.ModelMetadata.Properties.Where(pm => !ViewData.TemplateInfo.Visited(pm)))
{
if (prop.HideSurroundingHtml)
{
@Html.Display(prop.PropertyName)
}
else
{
if (!String.IsNullOrEmpty(prop.GetDisplayName()))
{
<div class="display-label">@prop.GetDisplayName()</div>
}
<div class="display-field">@Html.Display(prop.PropertyName)</div>
}
}
}
正如您所看到的,与我所做的默认显示模板的唯一区别在于我删除了pm.ShowForDisplay
条件的 foreach 选择器。
现在,当您拥有以下属性时:
[ScaffoldColumn(false)]
public int ReadCount { get; set; }
它将与 DisplayForModel 一起显示,而不与 EditorForModel 一起显示。