我想格式化TextBoxes中显示的DateTime,没有时间和格式:2011年1月1日,而不是显示和编辑方案的默认01/01/2011。
我已经在DateTime中使用以下模板来使用datepicker。我可以在某种程度上包括格式吗?
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.DateTime?>" %>
<%: Html.TextBox("",ViewData.TemplateInfo.FormattedModelValue, new { @class = "text-box single-line" }) %>
提前致谢。
答案 0 :(得分:5)
<%= Html.TextBox("", Model.HasValue ? Model.Value.ToString("dd MMM, yyyy") : "", new { @class = "text-box single-line" }) %>
或更好的视图模型:
[DisplayFormat(DataFormatString = "{0:dd MMM, yyyy}", ApplyFormatInEditMode = true)]
public DateTime? Foo { get; set; }
答案 1 :(得分:3)
是ViewData.TemplateInfo.FormattedModelValue
日期时间对象吗?
从DateTime对象中获取所需的格式使用以下内容:
var now = DateTime.Now;
var formattedDate = now.ToString("dd MMM, yyyy");
这应该有效
<%=
var theDate = Model.HasValue ? Model.Value.ToString("dd MMM, yyyy") : DateTime.Now.ToString("dd MMM, yyyy");
Html.TextBox("", theDate, new { @class = "text-box single-line" }) %>
调用Model.ToString("dd MMM, yyyy")
时收到错误的原因是因为它是一个Nullable对象,而ToString()方法不接受任何参数。模型的值是DateTime对象,它接受参数。