1

我在以下代码中提供了位于 model.StartDate 的完整日期时间:

@Html.DisplayFor(model => model.StartDate.ToString("hh:mm tt"),
CultureInfo.CreateSpecificCulture("hu-HU"));

我的目标是获取完整的 DateTime

8/30/2012 11:33:48 AM

并且只显示

11:33:48 AM

但是,我收到以下错误:

Templates can be used only with field access, property access,
single-dimension array index, or single-parameter custom indexer expressions.

为什么会发生此错误?


注意:我参考了这个文档来为我的 DateTime 格式化我的 .ToString:http: //msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

4

2 回答 2

4

您可以在模型类上放置一个 DataAnnotation。像这样的东西-> [DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]。

于 2012-08-30T17:15:28.657 回答
1

在您的模型上创建一个返回格式化日期的新属性。

public class MyModel
{
    // Other fields including your current StartDate

    public class StartDateFormatted
    {
        get 
        { 
            return StartDate.ToString("hh:mm tt"), 
               CultureInfo.CreateSpecificCulture("hu-HU"));
        }
    }
}

然后在 Razor 标记中使用该属性

@Html.DisplayFor(model => model.StartDateFormatted);
于 2012-08-30T17:07:35.997 回答