asp.net-mvc – 在使用ModelBinder之前更改文化
发布时间:2020-05-28 03:05:39 所属栏目:asp.Net 来源:互联网
导读:我想用不同的语言创建一个网站.我已经读过我可以创建一个 ActionFilter,但我有一个小问题: 我必须创建一个自定义的ModelBinder才能使用英语和德语数字格式(123,456,789.1与123.456.789,1) public class DecimalModelBinder : DefaultModelBinder{ public ove
|
我想用不同的语言创建一个网站.我已经读过我可以创建一个
ActionFilter,但我有一个小问题:
public class DecimalModelBinder : DefaultModelBinder
{
public override object BindModel(ControllerContext controllerContext,ModelBindingContext bindingContext)
{
string key = bindingContext.ModelName;
var v = ((string[])bindingContext.ValueProvider.GetValue(key).RawValue)[0];
float outPut;
if (float.TryParse(v,NumberStyles.Number,System.Globalization.CultureInfo.CurrentCulture,out outPut))
return outPut;
return base.BindModel(controllerContext,bindingContext);
}
}
此ModelBinder使用当前文化来决定使用哪种格式. 如何在ModelBinder变为活动状态之前更改文化? 解决方法您可以实现IHttpModule并在BeginRequest中设置文化,如 here所示.void context_BeginRequest(object sender,EventArgs e)
{
// eat the cookie (if any) and set the culture
if (HttpContext.Current.Request.Cookies["lang"] != null)
{
HttpCookie cookie = HttpContext.Current.Request.Cookies["lang"];
string lang = cookie.Value;
var culture = new System.Globalization.CultureInfo(lang);
Thread.CurrentThread.CurrentCulture = culture;
Thread.CurrentThread.CurrentUICulture = culture;
}
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在ASP.NET Core中使用AOP来简化缓存操作
- asp.net-mvc – Ninject.MVC3,Nuget,WebActivator哦我的
- asp.net-mvc – 保存后显示相同的页面
- asp.net – 从通用列表中将ListItem添加到DropDownList
- asp.net-mvc-4 – MVC4中的Bootstrap和font-awesome
- asp.net-mvc – Sitecore和ASP.net MVC
- asp.net-mvc-3 – 我应该尝试使用MVC3和ASP.net的F#吗?
- asp.net – 可以使用__doPostBack()吗?
- asp.net – 当我按浏览器BACK按钮会发生什么?
- asp.net – 如何通过render事件禁用CalendarExtender控件中
