![](/img/trans.png)
[英]MVC5 Razor ValidationMessageFor triggered on hidden, not-used div
[英]C# MVC5 ValidationMessageFor using jquery datetimepicker throw “The field must be a date.”
我检查了所有具有类似问题的主题,但找不到我做错的事情。
我的日期模型是:
[Display(Name = "StartDate")]
[DataType(DataType.DateTime), DisplayFormat(DataFormatString = "{0:dd.mm.yy HH:mm}", ApplyFormatInEditMode = true)]
public DateTime? DateFrom { get; set; }
在我的cshtml文件中是:
@Html.LabelFor(m => m.DateFrom)
@Html.TextBoxFor(m => m.DateFrom, new Dictionary<string, object> { { "class", "form-control datetimepicker" } })
@Html.ValidationMessageFor(m => m.DateFrom)
我使用的是datetimepicker插件-http://xdsoft.net/jqplugins/datetimepicker/ ,它以所需的格式将我带到文本框值,但验证时引发“字段StartDate必须是日期。”
查看截图
DateTimePicker实现:
$(".datetimepicker").datetimepicker({
dateFormat: 'dd.mm.yy',
timeFormat: 'HH:mm'
});
还尝试了:
$.validator.addMethod('date',
function (value, element) {
if (this.optional(element)) {
return true;
}
var ok = true;
try {
$.datepicker.parseDateTime('dd.mm.yy HH:mm', value);
}
catch (err) {
ok = false;
}
return ok;
});
我认为您应该将控制器分为两个部分:
-一个(只需添加注释[HttpGet]),
-一个发布(只需添加注释[HttpPost])。
然后,您可以在post方法中编写个性化错误(例如,使用try catch块),以添加所需的消息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.