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

MVC3全球化:模型绑定前需要全局过滤分享

时间:2023-04-10 17:38:41 C#

和浏览器语言头来为请求确定正确的文化设置:publicoverridevoidOnActionExecuting(ActionExecutingContextfilterContext){//确定cultureInfoThread.CurrentThread.CurrentCulture=文化信息;Thread.CurrentThread.CurrentUICulture=cultureInfo;这一切都有效,但模型绑定过程似乎发生在全局过滤器之前,因此模型绑定器不考虑文化设置。这会导致解释双精度值、日期时间值等问题。我可以将区域性检测代码移到其他地方,但我不喜欢我的任何一个选项:理想情况下,我想找到一些方法在“routingdone”和“modelbindingstarted”事件,但我在MSDN/Google上没有找到任何东西。或者也许还有另一种我不知道的处理MVC3全球化的方法?在此先感谢您的贡献。将文化决定代码提取到单独的组件/类中。然后创建一个派生自DefaultModelBinder的ModelBinder,它使用此类在调用BindModel之前设置区域性GetCulture(controllerContext.HttpContext);//设置当前线程文化Thread.CurrentThread.CurrentCulture=cultureInfo;Thread.CurrentThread.CurrentUICulture=cultureInfo;返回base.BindModel(controllerContext,bindingContext);然后为应用注册(在Application_Start中)以上是C#学习教程:MVC3全球化:模型绑定之前,所有需要全局过滤共享的内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——//将我们自己的模型绑定器注册为默认的ModelBinders.Binders.DefaultBinder=newCultureAwareModelBinder();本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: