我正在尝试创建 DisplayTemplates -> Object.cshtml 模板,并从中获取指定字段的属性模板。我将提供示例来说明问题。
视图模型
public class UserViewModel
{
public string FullName { get; set; }
public string Email { get; set; }
[DataType(DataType.Date)]
public string DateStamp { get; set; }
}
我想像这样显示这个View.cshtml
模型
@model CAWP.Models.UserViewModel
<fieldset>
<legend>User Information </legend>
@Html.DisplayForModel(Model)
</fieldset>
我的 ASP.NET MVC DisplayTemplates 文件夹有两个文件Object.cshtml
和Date.cshtml
.
看起来Object.cshtml
像
@foreach (var prop in ViewData.ModelMetadata.Properties.Where(p => p.ShowForDisplay))
{
<div class="display-label">@prop.DisplayName</div>
<div class="display-field">@Html.Display(prop.PropertyName)</div>
}
Date.cshtml
是专为UserViewModel.DateStamp
财产而创建的
<time datetime="@ViewData.TemplateInfo.FormattedModelValue" data-date-format="date"></time>
所以问题是从来没有放入@Html.Display(prop.PropertyName)
模板中。任何想法为什么它不起作用?Object.cshtml
UserViewModel.DateStamp
Date.cshtml