当前位置: 首页 > 编程语言 > C#

ASP.NET MVC3:强制控制器使用日期格式dd - mm - yyyy分享

时间:2023-04-10 11:15:32 C#

C#学习教程:ASP.NETMVC3:强制控制器使用日期格式dd/mm/yyyy/年。但是当我提交表单时,ASP.net显然使用美国格式。(只接受少于12天,被认为是月份。)publicActionResultTimeTable(DateTimeViewDate)有没有办法强制它识别某种方式?奇怪的是,其他插入方法似乎能识别正确的格式。“参数字典包含参数ViewDate的空条目,对于ViewDate中的方法System.Web.Mvc.ActionResultIndex(System.DateTime),它是不可空类型System.DateTime。可选参数必须是引用类型,并且可以为空类型,或声明为可选参数。”阅读。它很好地解释了正在发生的事情以及它为什么起作用。我知道使用该网站的每个人都在英国,所以我可以安全地覆盖默认的DateTime模型联编程序:型号名称).AttemptedValue;如果(String.IsNullOrEmpty(date))返回null;bindingContext.ModelState.SetModelValue(bindingContext.ModelName,bindingContext.ValueProvider.GetValue(bindingContext.ModelName));尝试{returnDateTime.Parse(date);}catch(Exception){bindingContext.ModelState.AddModelError(bindingContext.ModelName,String.Format(""{0}"无效。",bindingContext.ModelName));返回空值;您需要提供DateTime使用自定义ModelBinder。我和你有同样的问题。您是否尝试过将当前文化设置为en-GB?protectedoverridevoidInitialize(System.Web.Routing.RequestContextrequestContext){base.Initialize(requestContext);CultureInfocultureInfo=CultureInfo.GetCultureInfo("en-GB");Thread.CurrentThread.CurrentCulture=cultureInfo;Thread.CurrentThread.CurrentUICulture=cultureInfo;你可以做到:啊,抱歉,我不能在Adamspost中添加评论——这是基于他的代码。基本上我的日期选择器使用英国格式的dd/mm/yyyy初学者的错误。它应该使用浏览器设置的任何格式。问题不在于格式,而是客户端和服务器之间的格式不同。服务器应发出代码以根据协商的区域设置格式化日期,然后服务器也使用该代码来解析它。但是当我提交表单时,ASP.NET显然使用了美国格式。不,就是说,当我吃香料时,总是加盐,然后你总是加盐。您的服务器接受当前协商的文化-除非您修改设置-在客户端和服务器之间协商。检查线程的当前文化何时应该被解析以查看它是如何设置的。从我的BindigTools绑定DateTime?(可空),基于一些书籍示例-ProMVC3publicstaticDateTime?GetValueNDateTime(ModelBindingContextcontext,stringsearchPrefix,stringkey,stringformat){ValueProviderResultvpr=context.ValueProvider.GetValue(searchPrefix+key);日期时间输出值;如果(DateTime.TryParseExact(vpr.AttemptedValue,format,null,System.Globalization.DateTimeStyles.None,outoutVal)){返回outVal;}else{返回空值;它使用精确的解析,所以你在解析日期时不会有任何问题。以上就是C#学习教程分享的全部内容:ASP.NETMVC3:强制控制器使用日期格式dd/mm/yyyy。如果对你有用,需要了解更多C#学习教程,希望大家多多关注——本文来自网络收藏,不代表立场,如涉及侵权,请右击联系管理员删除。如需转载请注明出处: