asp.net-mvc – MVC3自定义格式化日期的不显眼日期验证
发布时间:2020-12-16 04:13:57 所属栏目:asp.Net 来源:网络整理
导读:我有一个日期字段(我使用 jquery ui datepicker)在我格式化的表单中,如下所示: 视图模型 [DisplayFormat(DataFormatString = "{0:dd-MMM-yyyy}",ApplyFormatInEditMode = true)]public DateTime FooDate { get; set; } 视图 @Html.EditorFor(m = m.FooDate)
我有一个日期字段(我使用
jquery ui datepicker)在我格式化的表单中,如下所示:
视图模型 [DisplayFormat(DataFormatString = "{0:dd-MMM-yyyy}",ApplyFormatInEditMode = true)] public DateTime FooDate { get; set; } 视图 @Html.EditorFor(m => m.FooDate) 这正确地显示了我想要它的日期,例如09 – 11月 – 2011 我收到的问题发生在我按提交时.它一直告诉我日期无效….这是有效的,你这个蠢事! 有什么办法,我可以得到jquery / unobtrusive javascript忽略这个字段或允许这种格式通过?到目前为止,我可以让表单工作的唯一方法是,如果我不格式化日期,或使用{0:d}作为日期格式. 编辑: 我的布局是空的.它只加载以下文件: "jquery-1.7.min.js" "jquery-ui-1.8.16.min.js" "jquery.validate.min.js" "jquery.validate.unobtrusive.min.js" 我的TestViewModel很简单: public class TestViewModel { [Display(Name = "Test Date:")] [DisplayFormat(DataFormatString = "{0:dd/MMM/yyyy}",ApplyFormatInEditMode = true)] public DateTime? TestDate { get; set; } } 我的TestController如下: public class TestController : Controller { public ActionResult Index() { var m = new TestViewModel(); m.TestDate = DateTime.Now; return View(m); } } 我的看法: @using (Html.BeginForm()) { ViewContext.FormContext.ValidationSummaryId = "valSumId"; @Html.ValidationSummary(false,"The following errors were found:"); @Html.AntiForgeryToken() @Html.LabelFor(m => m.TestDate) <input type="date" id="TestDate" value="@Model.TestDate.Value.ToString("dd/MMM/yyyy")" /> <input type="submit" /> } 没有工作. 你知道烦人的是什么吗?如果我将TestDate更改为字符串,它仍然会失败. 解决方法
我认为格式字符串中的连字符(“ – ”)存在问题:
[DisplayFormat(DataFormatString = "{0:dd-MMM-yyyy}",ApplyFormatInEditMode = true)] 默认情况下,不显眼的验证似乎不接受连字符进行日期格式化. 在我的情况下,我不得不添加自定义客户端方法: $.validator.methods.date = function (value,element) { var s = value; s = value.replace(/-/g,'/'); return this.optional(element) || !/Invalid|NaN/.test(new Date(s)); }; 实施here (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 取消选中时,ASP.NET CheckBox不会启动CheckedChanged事件
- asp.net – Android C2DM获取(401)未经授权
- 使用IIS 5.1运行asp.net 4.0
- asp.net – 实体框架6 EntityDataSource不在DbContext中调用
- asp.net-mvc-3 – LabelFor不在循环中工作(for / foreach /
- 按代码更改ASP.NET成员资格提供程序
- ASP.NET Core的路由[5]:内联路由约束的检验
- 剃刀 – Asp.net Core如何呈现视图
- asp.net – 停止从域(也称为“无Cookie域”)设置Cookie以增
- asp.net-mvc – 将html属性传递给Html.Actionlink帮助函数
推荐文章
站长推荐
- asp.net-mvc – 单选按钮如何与asp.net mvc绑定一
- asp.net-mvc – 在mvc 5和web api 2之间共享owin
- ASP.NET 2.0中的Gridview列宽
- 如何在ASP.net站点中重写URL
- asp.net验证文本框 – 至少有一个文本框必须包含
- asp.net – Repeater Control中的条件逻辑?
- asp.net – 为MVC3应用程序中的某些操作启用并要
- asp.net-mvc-2 – 用于实现CanExecute样式命令的
- asp.net – NLog – 如何记录所有请求信息
- asp.net-mvc – 使用javascript的Mvc ActionLink
热点阅读