最小、完整和可验证的示例(框架 3.5):
<%@ Page Language="C#" Culture="en-US" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<form id="form1" runat="server">
<asp:TextBox ID="txt" runat="server" />
<asp:CompareValidator runat="server" ControlToValidate="txt" Operator="DataTypeCheck" Type="Double" Text="This is not a double." />
<asp:Button runat="server" Text="Do Postback" />
</form>
</body>
</html>
1,234.0
在文本框中输入并点击 TAB。
预期结果:没有。
实际结果:This is not a double.
为什么我希望比较成功:因为文档说:“如果无法将值转换为指定的数据类型,则验证失败。” ,但Convert.ToDouble("1,234.0", CultureInfo.GetCultureInfo("en-US"))
成功了。
我的问题:
这是一个错误(我应该向 Microsoft Connect 报告)还是我错过了文档的某些部分,其中说 CompareValidator 使用与 .NET 框架的其余部分不同的转换规则?