我正在尝试创建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
模板中。任何想法为什么它不起作用?
答案 0 :(得分:0)
实际上问题是
@Html.DisplayForModel(Model)
应该是
@Html.DisplayForModel()
我不知道这两者是如何不同的。