我有一个非常简单的 ASP.NET 页面,其中包含一些输入字段和验证器。一个接受双精度的字段如下所示:
<asp:TextBox ID="tbHeight" runat="server" />
<asp:RangeValidator ID="vdHeight" runat="server"
ErrorMessage="Height must be a positive number" Text="*"
ControlToValidate="tbHeight" MinimumValue="0" Type="Double" />
这按预期工作,用户必须输入一个 >= 0 的数字。
更新:这毕竟不能按预期工作(项目中的一些奇怪的错误)。有关详细信息,请参阅以下答案的评论
然后我对接受整数的字段尝试相同的操作:
<asp:TextBox ID="tbGrossTonnage" runat="server" />
<asp:RangeValidator ID="vdGrossTonnage" runat="server"
ErrorMessage="Gross Tonnage must be a positive whole number" Text="*"
ControlToValidate="tbGrossTonnage" MinimumValue="0" Type="Integer" />
加载 ASP 页面时,这给了我以下错误:'vdGrossTonnage' 的 MaximumValue 属性的值 '' 不能转换为类型 'Integer'。
我在系统中没有任何特定的最大值要求,所以我希望它“默认”为Int32.MaxValue
(尽管我必须输入 2,147,483,647,因为MaximumValue
似乎不接受这个Int32.MaxValue
常数)。
为什么RangeValidator
类型Integer
的 a 不接受缺少的MaximumValue
属性,但是对于其中一种类型,Double
这是可以的?