将DateTime转换为Date

Ogn*_*jen 2 asp.net-mvc html-helper

码:

  <% foreach (var item in Model) { %>   
  <td>
     <%= Html.Encode(item.BirthDate) %>
  </td>
  <% } %>
Run Code Online (Sandbox Code Playgroud)

显示:8/24/2009 12:00:00 AM但我只需要日期(2009年8月24日).可以在控制器动作中不进行任何格式化

Ste*_*tti 6

有几种方法可以解决它.如果您使用的是MVC 2,则可以使用DisplayTemplate.只需将DateTime.ascx文件放在名为/ Views/Shared/DisplayTemplates的文件夹中,它所包含的代码行是:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.DateTime?>" %>
<%: Model.HasValue ? Model.Value.ToShortDateString() : string.Empty %>
Run Code Online (Sandbox Code Playgroud)

(注意:如果你使用<%:语法,那么你不需要Html.Encode(),因为<%:为你编写HTML编码 - 但这只是在你使用VS2010时.如果你正在使用MVC 2使用VS2008,然后坚持使用此部分的Html.Encode())然后在您的视图中,您只需执行此操作:

<%: Html.DisplayFor(m => m.BirthDate) %>
Run Code Online (Sandbox Code Playgroud)

这会将格式更改为仅在应用程序中包含所有 DateTime的日期.当然你也可以直接把它放在视图中.但DisplayTemplate也将为所有其他DateTime更改它,您不必在视图中关注它,因为它会自动发生.