如何指定模型的显示格式和模板

你可以通过使用下列方法指定的格式或模板的模型属性:

  • 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")

使用的方法取决于您需要在您的应用程序中做什么。混合使用这些方法让正是您需要的格式种类。

posted @ 2014-04-10 11:03  秋意了了  阅读(768)  评论(0编辑  收藏  举报