如何在Asp.net MVC3中的视图中以dd/MM/yyyy格式显示日期

Sam*_*m M 4 asp.net asp.net-mvc-3

控制器代码

  int No= Convert.ToInt32(reqCookies["NO"].ToString());  
  Student stud = db.Students.Single(n => n.No == No);
  return View(stud);      
Run Code Online (Sandbox Code Playgroud)

我在用户登录后传递,并希望显示我已成功完成的登录人员的记录.我的问题再次出现在日期.当显示登录用户的记录时,出生日期是与时间一起显示.就像这个2/19/2001 12:00:00 AM,相反,我只想要日期部分,而不是像19/2/2001这样的时间.为实现这一点,我试图以dd/MM/yyyy格式转换日期

DateTime DOB=stud.DOB.tostring("dd/MM/yyyy");
Run Code Online (Sandbox Code Playgroud)

获取错误:方法'ToString()'没有重载需要1个参数

我的视图中的代码是这样的:

<td>@Html.DisplayFor(model => model.DOB.ToString())</td>
Run Code Online (Sandbox Code Playgroud)

当我尝试更改视图中的格式时

<td>@Html.DisplayFor(model => model.DOB.ToString("dd/MM/yyyy"))</td>
Run Code Online (Sandbox Code Playgroud)

获取错误:方法'ToString()'没有重载需要1个参数

我在哪里可以进行转换以及如何截断时间部分显示.

Dan*_*ous 5

您可以在模型中使用DisplayFormat格式化日期:

[DisplayFormat(DataFormatString = "{0:dd/mm/yyyy}")]
public DateTime myDate { get; set; }
Run Code Online (Sandbox Code Playgroud)

然后在视图中:

<td>@Html.DisplayFor(model => model.DOB)</td>
Run Code Online (Sandbox Code Playgroud)

更新:

或者,由于DisplayFor()只输出没有任何标签的日期,您可以只显示日期而不使用模板化助手:

@Model.myDate.ToString("dd/MM/yyyy")
Run Code Online (Sandbox Code Playgroud)

或者在文本框中显示您可以使用:

@Html.TextBox("Date", Model.myDate.ToString("dd/MM/yyyy"))
Run Code Online (Sandbox Code Playgroud)