Pet*_*ith 0 razor asp.net-mvc-3
我有一个MVC 3网站,我在表格中使用以下方式显示日期:
<div class="editor-label control-label">
@Html.LabelFor(m => m.rrsfWoman.DateOfBirth)
</div>
<div class="editor-field controls">
@Html.EditorFor(m => m.rrsfWoman.DateOfBirth)
@Html.ValidationMessageFor(m => m.rrsfWoman.DateOfBirth)
</div>
Run Code Online (Sandbox Code Playgroud)
出生日期在rrsfWoman类中定义为
public DateTime WomansDateOfBirth { get; set; }
Run Code Online (Sandbox Code Playgroud)
我的问题是,因为出生日期字段默认值为MinDate.有没有办法可以将日期的显示压缩为1/01/0001 而不使字段可以为空.
谢谢
有没有办法可以将日期的显示压缩为1/01/0001而不使字段可以为空.
实现这一目标的正确方法是在视图模型中使日期可以为空.如果你以后不这样做,你也会遇到模型绑定,因为不可空的DateTime字段不能绑定到空字符串,你必须编写自定义模型绑定器和东西才能使它工作.如果您不使用视图模型,您将使您的生活变得悲惨.
这就是说,如果你想违背良好的做法,你可以为DateTime类型定义一个自定义编辑器模板,它将执行检查并使用空值但老实说我不建议你这样做:
~/Views/Shared/EditorTemplates/DateTime.cshtml
:
@model DateTime
@if (Model == default(DateTime))
{
@Html.TextBox("", "")
}
else
{
@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue)
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3001 次 |
最近记录: |