我是MVC的新手。我有一个datetime属性和dataannotaion,如下所示:
[ReadOnly(true)]
[DataType(DataType.DateTime), DisplayFormat(ApplyFormatInEditMode = true, ConvertEmptyStringToNull = true, DataFormatString = "{0: dd/MMM/yyyy HH:mm:ss}", HtmlEncode = true, NullDisplayText = "-")]
[DisplayName("Last Update")]
[Required(AllowEmptyStrings = false, ErrorMessage = "Last Update is required.")]
public DateTime LastUpdate { get; set; }
在创建页面时,它显示效果很好。但是当我提交时,我收到验证错误消息“字段上次更新必须是日期”,并且数据无法处理。然后我必须将输入格式更改为“yyyy / MM / dd”并且没有时间提交。
我正在使用@ Html.EditorFor()。如何使用EditorFor()在创建页面中显示日期格式(dd / MMM / yyyy),并在索引页面中显示日期时间格式(dd / MMM / yyyy HH:mm:ss)?或者当EditorFor值的日期时间格式如(dd / MMM / yyyy HH:mm:ss)时如何通过验证?
答案 0 :(得分:-1)
最好使用文本框来获取所需的功能。这是我已经完成的方式。检查是否有任何帮助:
型号:
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]
[MyDate(ErrorMessage = "Date Of Birth cannot be greater than Today")]
[Required(ErrorMessage = "Date Of Birth Required")]
public DateTime? EndDate { get; set; }
查看:
@Html.ValidationMessageFor(m => m.EndDate, "*")
@Html.LabelFor(m => m.EndDate, "Date :", new { style = "display:inline;" })
@Html.TextBoxFor(m => m.EndDate, "{0:MM/dd/yyyy}",new { id = "datepicker"})
在视图中"{0:MM/dd/yyyy}"
用于将正确的格式设置为日期
我使用过Jquery Datepicker,代码如下:
<script>
$(document).ready(function () {
$("#datepicker").datepicker({
//dateFormat: "yy-mm-dd",(to display date in required format)
changeYear: true,
changeMonth: true,
yearRange: '1900:2222',
background: '#000',
showOn: "button"
}).css("display", "inline-block")
.next("button").button({
icons: { primary: "ui-icon-calendar" },
label: "cal",
text: false
});
});
</script>