将日期时间模型属性显示为短日期时间字符串

asa*_*yer 8 c# asp.net-mvc asp.net-mvc-2

我是MVC2的新手,我遇到了格式化问题.我的Employee模型中有一个DateTime属性,我想用短日期时间显示.

然而,这似乎不是正确的方法.

1 <div class="editor-field">
2    <%: Html.TextBoxFor(model => model.DateRequested.ToShortDateString()) %>
3    <%: Html.ValidationMessageFor(model => model.DateRequested) %>
4 </div>
Run Code Online (Sandbox Code Playgroud)

第2行抛出此异常:

模板只能用于字段访问,属性访问,单维数组索引或单参数自定义索引器表达式.

在mvc中处理格式化的正确方法是什么?

Dar*_*rov 28

尝试使用以下[DisplayFormat]属性修饰视图模型属性:

[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
public DateTime DateRequested { get; set; };
Run Code Online (Sandbox Code Playgroud)

并在您的视图中使用Html.EditorFor帮助器:

<div class="editor-field">
    <%: Html.EditorFor(model => model.DateRequested) %>
    <%: Html.ValidationMessageFor(model => model.DateRequested) %>
</div>
Run Code Online (Sandbox Code Playgroud)

或者如果你坚持使用文本框助手(不知道你为什么,但无论如何这里是如何):

<div class="editor-field">
    <%: Html.TextBox("DateRequested", Model.DateRequested.ToShortDateString()) %>
    <%: Html.ValidationMessageFor(model => model.DateRequested) %>
</div>
Run Code Online (Sandbox Code Playgroud)