gpt4 book ai didi

asp.net - asp net CompareValidator type double datatypecheck 允许错误值

转载 作者:行者123 更新时间:2023-12-02 10:54:42 25 4
gpt4 key购买 nike

Win 7 上的 ASP NET 4.0

如果我实现这样的 CompareValidator:

<asp:CompareValidator ID="cmprValidatorDoubleType" ControlToValidate="TextBox10" Type="Double" Display="Dynamic" Operator="DataTypeCheck" ErrorMessage="*Not a valid number." runat="server"></asp:CompareValidator>

它将接受诸如“5”之类的值。 (不带引号)不带小数的值。这是正常且预期的行为吗?

最佳答案

是的,这是预期的行为,因为您使用属性: Operator 在这里,首先您输入到 textBox 中的值将被尝试隐式转换为您定义的 Type 。即这里的Double。所以,我猜,5. 成功转换为 double 值。

MSDN 是这样描述 OPERATOR CompareValidator 的属性:

 A data type comparison of the value entered in the input control being validated and
the data type specified by the BaseCompareValidator.Type property. Validation fails
if the value cannot be converted to the specified data

整数总是 implicitly convertible 为以下任意一种:longfloatdoubledecimal。这是因为这是从较小数据类型到较大数据类型的转换,并且不会丢失数据。看这个MSDN link .

此外,当您声明时:

Double d = 5;

或者

Double d = Convert.ToDouble("5.");

在调试器中检查d的值。它显示为:5.0。所以您现在可以猜测使用 5 实际上被解释为 5.0,因此验证通过。

关于asp.net - asp net CompareValidator type double datatypecheck 允许错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18711130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com