如何在模型中格式化日期并使用get在视图上显示,而不是在MVC视图中使用String.Format?

时间:2011-07-27 18:50:12

标签: c# asp.net-mvc asp.net-mvc-2

目前,我正在使用<%= String.Format(“{0:MMM dd,yyyy}”,DateTime.Now)%> 来获取今天的日期 7月27,2011 格式。

现在,我希望从模型中获取今天的日期,而不是在我的视图中使用String.Format(这不是一个好方法)。

任何人都可以在模型中帮助我如何做到这一点。

我使用的是Asp.net MVC2。

我在我的财产中尝试了类似:

[DisplayName("Display Date")]
[DisplayFormat(DataFormatString = "{0:MMM dd, yyyy}")] 
public DateTime DisplayDate { get; set; } 

在视野中我尝试过:

<%= Html.DisplayFor(model => model.DisplayDate) %>

2 个答案:

答案 0 :(得分:1)

嗯,你可以使用:

<%= DateTime.Now.ToString("MMM dd, yyyy") %>

但是,为什么String.Format不好?

答案 1 :(得分:1)

很奇怪,以下对我来说很有用。

型号:

public class MyViewModel
{
    [DisplayFormat(DataFormatString = "{0:MMM dd, yyyy}")]
    public DateTime DisplayDate { get; set; }
}

控制器:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        var model = new MyViewModel
        {
            DisplayDate = DateTime.Now
        };
        return View(model);
    }
}

查看:

<%= Html.DisplayFor(model => model.DisplayDate) %>

输出HTML:

Jul 27, 2011