Tra*_*ffy 57 c# asp.net-mvc date
我正在使用MVC4和Entity Framework来开发Intranet Web应用程序.我有一个可以编辑的人员列表.当我访问编辑视图时,在文本框"开始日期"中,日期显示如下:7/11/2013 00:00:00
.我想要做的是以yyyy/MM/dd格式显示它.我试过了,String.Format("{0:yyyy/MM/dd}", item.StartDate)
但它不起作用.我也试过了注释,[DisplayFormat(DataFormatString = "{0:dd MMM yyyy}")]
但它也不起作用.
在我看来,我有这个:
<div class="editor-field">
@Html.TextBoxFor(model => model.StartDate, new { @class = "datepicker" })
@Html.ValidationMessageFor(model => model.StartDate)
</div>
Run Code Online (Sandbox Code Playgroud)
有什么想法怎么办?
Vla*_*mir 104
@Html.TextBoxFor(m => m.StartDate,
new { @Value = Model.StartDate.ToString("yyyy/MM/dd"), @class="datepicker" })
Run Code Online (Sandbox Code Playgroud)
Max*_*ime 73
您的问题要求,EditorFor()
但您提供的代码使用TextboxFor()
.
在您的模型中,您应该:
public class MyModel
{
[DisplayFormat(DataFormatString = "{0:yyyy/MM/dd}", ApplyFormatInEditMode = true)]
public DateTime StartDate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在您的视图中,您只需像编写它一样使用它:
@Html.EditorFor(m => m.StartDate, new { htmlAttributes = new { @class = "datepicker" } })
Run Code Online (Sandbox Code Playgroud)
它按预期工作.
通过这样做(而不是改变它在视图中显示的方式),您可以在其他地方重用您的模型,而不必指定如何在视图中显示日期.因此,如果由于某种原因,您必须更改显示格式,您只需要更改一次.
该解决方案也适用于MVC 5.
归档时间: |
|
查看次数: |
88484 次 |
最近记录: |