Я хочу создать сайт на разных языках. Я уже читал, что могу создать ActionFilter, но у меня небольшая проблема:
мне пришлось создать собственный ModelBinder для работы с английскими и немецкими числовыми форматами (123,456,789.1
против 123.456.789,1
)
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 используется до того, как ActionFilter может изменить культуру.
Как я могу изменить культуру до того, как ModelBinder станет активным?