asp.net-mvc – MVC DateTime验证失败
发布时间:2020-12-15 21:00:27 所属栏目:asp.Net 来源:网络整理
导读:我发现了许多simulair问题,但不是一个有效的干净解决方案.我看到很多自定义代码可以让它工作,但为什么会这样?这应该从一开始就不起作用吗? 我认为奇怪的是,在IE9中它可以工作,但在Firefox和Chrome中它失败了. 每当我在Firefox或Chrome中尝试时,我都会收到
我发现了许多simulair问题,但不是一个有效的干净解决方案.我看到很多自定义代码可以让它工作,但为什么会这样?这应该从一开始就不起作用吗?
我认为奇怪的是,在IE9中它可以工作,但在Firefox和Chrome中它失败了. 当我在新的MVC 4 RTM项目中尝试下面的代码时,我无法让它工作.我在所有浏览器中都看到DateTime.Now默认为dd-MM-yyyy(Holland)但我无法在Firefox和Chrome中提交它. 全局标记未在web.config中设置,因此必须使用默认值.我来自荷兰,所以它应该得到我猜的客户文化. public class RegisterModel { [Required] [Display(Name = "User name")] public string UserName { get; set; } [Required] [DisplayFormat(DataFormatString = "{0:d}",ApplyFormatInEditMode = true)] //[DataType(DataType.Date)] public DateTime Birthday { get; set; } } [AllowAnonymous] public ActionResult Register() { RegisterModel vm = new RegisterModel() { Birthday = DateTime.Now }; return View(vm); } [HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public ActionResult Register(RegisterModel model) { if (ModelState.IsValid) { // Attempt to register the user try { //WebSecurity.CreateUserAndAccount(model.UserName,model.Password); //WebSecurity.Login(model.UserName,model.Password); return RedirectToAction("Index","Home"); } catch (MembershipCreateUserException e) { ModelState.AddModelError("",ErrorCodeToString(e.StatusCode)); } } // If we got this far,something failed,redisplay form return View(model); } 标记 <!-- language: lang-none --> @model DateTimeWithDatePicker.Models.RegisterModel @{ ViewBag.Title = "Register"; } <hgroup class="title"> <h1>@ViewBag.Title.</h1> <h2>Create a new account.</h2> </hgroup> @using (Html.BeginForm()) { @Html.AntiForgeryToken() @Html.ValidationSummary() <fieldset> <legend>Registration Form</legend> <ol> <li> @Html.LabelFor(m => m.UserName) @Html.TextBoxFor(m => m.UserName) </li> <li> @Html.LabelFor(m => m.Birthday) @Html.EditorFor(m => m.Birthday) </li> </ol> <input type="submit" value="Register" /> </fieldset> } @section Scripts { @Scripts.Render("~/bundles/jqueryval") } 解决方法
我能够通过修改日期的jQuery验证器函数来解决这个问题:
<script type="text/javascript"> $(function () { var dateFormat="dd/mm/yy"; // en-gb date format,substitute your own $("#Birthday").datepicker({ "dateFormat": dateFormat }); jQuery.validator.addMethod( 'date',function (value,element,params) { if (this.optional(element)) { return true; }; var result = false; try { $.datepicker.parseDate(dateFormat,value); result = true; } catch (err) { result = false; } return result; },'' ); }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 关闭单个字段的输入验证
- asp.net-mvc-3 – 如何初始化授权信息
- asp.net-mvc – 如何给Razor MVC中的共享布局模型?
- asp.net-core – 在Visual Studio CTP2中的ASP.VNext项目中
- 如何在asp.net 3.5中使用NHibernate
- 如何/在哪里asp.net mvc处理解码和动作方法参数
- ASP.NET使用百度eCharts
- ASP.NET应用程序在3个物理层上
- asp.net-web-api – Asp.net Web Api的基本项目模板?
- asp.net-mvc – 是否有一种方法来创建一个ActionLink与HTML
推荐文章
站长推荐
- asp.net – 表单身份验证无法正确验证用户
- ASP.NET页面间传值总结
- asp.net中使用repeater和PageDataSource搭配实现
- asp.net-mvc – ASP.NET MVC ActionResult背后的
- asp.net – Session Timeout .NET
- asp.net-mvc – MVC 2和MVC3有什么区别
- asp.net – 使用窗口域帐户进行身份验证的Web应用
- asp.net-mvc – 无法在mvc 4中映射特定控制器的路
- asp.net-mvc – 在MVC 3项目中使用T4MVC生成的代
- asp.net-mvc – 将HttpRequestMessage转换为Http
热点阅读