标签: rangevalidator

使用MaximumValue的ASP.NET RangeValidator怪异

我有一个非常简单的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" />
Run Code Online (Sandbox Code Playgroud)

这按预期工作,用户必须输入一个数字> = 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" />
Run Code Online (Sandbox Code Playgroud)

加载ASP页面时,会出现以下错误:'vdGrossTonnage'的MaximumValue属性值''无法转换为'Integer'类型.

我在系统中没有任何特定的最大值要求,所以我只想"默认" Int32.MaxValue(虽然我必须输入2,147,483,647,因为MaximumValue似乎不接受Int32.MaxValue常量).

为什么RangeValidator类型的Integera不会接受缺失的MaximumValue属性,但对于其中一种类型,Double这是可以的?

asp.net validation rangevalidator

9
推荐指数
1
解决办法
2万
查看次数

ASP.NET MVC - 默认范围验证错误消息未被覆盖

假设我有一个这样的模型属性:

[Range(1, 31, ErrorMessage = "O dia de fechamento deve possuir valores entre 1 e 31")]
public int DataInicial { get; set; }
Run Code Online (Sandbox Code Playgroud)

即使在注释上设置了自定义错误消息,我仍然收到范围注释的默认错误消息“请输入小于或等于 31 的值。”,当我在@Html.TextBoxFor(model => model.DataInicial)场地。

我知道这篇文章,但我认为如果您可以在注释级别设置自定义消息,它应该可以在不设置 App_GlobalResources 和 .resx 文件、设置第三方库或其他任何内容的情况下工作......我知道添加 . resx 文件并将所有这些验证字符串放在那里,是一种“最佳实践”,但是......

那么,我可能哪里出错了,因为消息显示不正确?

先感谢您。

c# asp.net-mvc rangevalidator data-annotations asp.net-mvc-4

7
推荐指数
1
解决办法
7493
查看次数

ASP.NET RangeValidator甚至不能做最基本的数学运算?

我的ASP.NET RangeValidator控件存在问题.

我想允许用户输入折扣金额,此金额必须为负数(<$ 0.00).我想验证在文本框中输入的金额是否为负值,所以我在页面标记中有这个:

<asp:TextBox ID="tbxDiscount" runat="server" />
<asp:RangeValidator ID="rvDiscount" runat="server" ControlToValidate="tbxDiscount"
     MinimumValue="0.0" MaximumValue="0.0" EnableClientScript="true" 
     ErrorMessage="Please enter a negative value for a discount" />
Run Code Online (Sandbox Code Playgroud)

并且我尝试在页面呈现之前在我的代码中动态设置MinimumValue - 相当于我的商品价格.因此,如果该项目是69美元,我想将最小值设置为 - $ 69:

rvDiscount.MinimumValue = (-1.0m * Price).ToString();
Run Code Online (Sandbox Code Playgroud)

麻烦的是:我不断收到此错误消息:

最大值0.0不能小于rvDiscount的最小值-69.00

WTF?!?!?!我来自哪里,-69 $ IS不到0美元......那么问题是什么?

更重要的是:问题的解决方案是什么?

asp.net validation rangevalidator

6
推荐指数
1
解决办法
3834
查看次数

RangeValidator不能算?

我试图验证一个字符串的长度TextBox.页面上的控件定义如下:

<asp:TextBox runat="server" ID="TB" />
<asp:RangeValidator runat="server" ID="RV" 
MinimumValue="3" MaximumValue="20" 
ControlToValidate="TB" Type="String" />
Run Code Online (Sandbox Code Playgroud)

但是当页面运行时出现运行时错误

MaximumValue 20不能小于MinimumValue 3

.net asp.net validation rangevalidator

4
推荐指数
1
解决办法
4992
查看次数

范围验证器不在asp.net最小值和最大值中

我申请RangeValidatorTextBox.但它总是显示错误:无效范围,虽然我给出了最小值10和最大值25.我希望用户不能输入长度小于10且大于25的值.我希望用户可以输入任何内容,所以我type="string"RangeValidator.但它总是给我错误消息:无效范围.

<td>
    <asp:TextBox ID="tbPassword" runat="server" MaxLength="25" type="password">
    </asp:TextBox>
    <asp:RequiredFieldValidator ID="rfvPassword" runat="server" 
        ControlToValidate="tbPassword" ForeColor="red" Display="Dynamic" 
        ErrorMessage="Password is required." SetFocusOnError="true">
    </asp:RequiredFieldValidator>
    <asp:RangeValidator ID="rvPassword" ControlToValidate="tbPassword" 
        ForeColor="red" Display="Dynamic" MinimumValue="10" MaximumValue="25" 
        SetFocusOnError="true" Type="String" runat="server" 
        ErrorMessage="Invalid Range">
    </asp:RangeValidator>
</td>
Run Code Online (Sandbox Code Playgroud)

asp.net rangevalidator validation-controls

1
推荐指数
1
解决办法
7854
查看次数