我有一个包含下一个TextBox的网页:
<asp:TextBox ID="txtSum" runat="server"></asp:TextBox>
和compareValidator验证它:
<asp:CompareValidator ID="CompareValidator1" runat="server" Display="Dynamic" ControlToValidate="txtSum" ErrorMessage="less than 0" ValueToCompare="0" Type="Double" Operator="GreaterThan">
</asp:CompareValidator>
当我将页面文化设置为俄语时,比较验证效果不佳 我发现原因是英语和俄语的格式编号不同 我试着改变格式如下:
NumberFormatInfo format = CultureInfo.CreateSpecificCulture("en-US").NumberFormat;
Thread.CurrentThread.CurrentCulture.NumberFormat = format;
但它不起作用。在调试中我看到文化的NumberFormat已经改变,但在页面中我得到的消息小于0.
我该如何解决?
答案 0 :(得分:0)
您面临的问题是由于浏览器文化。浏览器文化是俄语,您在IIS上的代码执行可能具有文化英语。 总是浏览器文化越来越好。您需要使用不变文化来解析double值或更改当前的UI文化,以便它可以正常工作。
protected override void InitializeCulture()
{
Page.Culture = CultureInfo.CreateSpecificCulture("en-US");
Page.UICulture = CultureInfo.CreateSpecificCulture("en-US");
}