如何指定模型的显示格式和模板
你可以通过使用下列方法指定的格式或模板的模型属性:
-
将
DisplayFormat
属性应用到模型中的属性。例如,以下代码会导致要没有时间显示的日期:[DisplayFormat(DataFormatString="{0:d}")] //[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime ReleaseDate{get;set;} -
通过将DataType属性应用到模型中的属性和指定数据类型。例如,以下代码会导致要没有时间显示的日期。
[DataType(DataType.Date)]
public DateTime ReleaseDate{get;set;}如果应用程序包含一个Views\Shared\DisplayTemplates文件夹或Views\Movies\DisplayTemplates文件夹中的date.cshtml(因为上面已经标记了类型为Date,否则文件名应为DateTime.cshtml,文件名不区分大小写)模板,该模板将用于呈现的
DateTime
属性。否则内置 ASP.NET 模板化系统显示的属性作为一个日期。
如果上面两个文件夹中都存在同名文件,则使用Moives文件夹中的模板。
模板格式样式如下:<span class="loud-1"> @String.Format("{0:d}", Model.Date) </span>
-
其名称Views\Shared\DisplayTemplates文件夹或Views\Movies\DisplayTemplates文件夹中创建一个显示模板匹配的你想要设置格式的数据类型。例如,您看到了Views\Shared\DisplayTemplates\DateTime.cshtml用来呈现在模型中,
DateTime
属性,无需添加到模型属性,和通过任何标记添加到视图。 -
使用的模型上的UIHint属性来指定要显示的模型属性的模板。
[UIHint("LoudDateTime")]
此种方法一般用于显示非常规属性。 -
显式地将显示模板名称添加到Html.DisplayFor在一个视图中调用。
@Html.DisplayFor(model => model.ReleaseDate,"LoudDateTime")
使用的方法取决于您需要在您的应用程序中做什么。混合使用这些方法让正是您需要的格式种类。