Изменить культуру перед использованием ModelBinder
Я хочу создать сайт на разных языках. Я уже читал, что я мог бы создать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 становится активным?