Поскольку на этот счет не было ответов, я собираюсь ответить на свой вопрос.
Ответ заключается в том, что это не представляется возможным - невозможно установить культуру для валидатора напрямую.
Способ, которым я мог выполнить свои задачи, заключающиеся в том, что серверный код работает всегда в культуре английского языка, но затем заставить валидаторы работать в культуре браузера, заключается в том, чтобы установить поток currentculture в конце Page_PreRender , Поэтому до этого момента код работает в английской культуре, но мы установили культуру вовремя, чтобы она действовала тогда, когда среда выполнения asp.net использует ее для настройки валидаторов.
Это отлично подходит для действия валидаторов со стороны пользователя, в моем случае позволяет пользователям в французском браузере вводить цифры во французском формате. Но есть еще одна проблема - если у вас есть код для проверки на стороне сервера при отправке/обратной передаче, эта проверка теперь будет неудачной - кажется, что при обратной передаче исходные настройки культуры валидатора не сохраняются, они используют культуру на месте на время они проверяются на стороне сервера: конечно, французские номера не считаются действительными, и проверка не выполняется.
Я надеюсь, что это помогает кому-либо еще, кто сталкивается с такой же вопрос
Это определенно работает! Спасибо. –
На самом деле это не работает сначала (после жесткого теста), но этот ответ дал идею, я использовал не Page_PreRender, использовал Page_PreInit. также сделать валидаторы CultureInvariantValues = "true", так что это работает. Тот же ответ можно найти по адресу http://stackoverflow.com/questions/14643347/rangevalidator-currency-value-cant-contain-more-than-2-digits-after-decimal –