Tôi có một trang ASP.NET khá đơn giản với một số trường nhập và trình xác nhận hợp lệ. Một lĩnh vực chấp nhận một ngoại hình đôi như thế này:ASP.NET RangeValidator weirdness với MaximumValue
<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" />
này làm việc như mong đợi, và người dùng phải nhập một số lượng> = 0.
Cập nhật: điều này không làm việc như mong đợi sau tất cả (một số lỗi lạ Trong dự án). Xem ý kiến để các câu trả lời dưới đây để biết chi tiết
Sau đó tôi cố gắng như nhau đối với một lĩnh vực chấp nhận một số nguyên:
<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" />
Khi tải ASP-page, điều này mang lại cho tôi những lỗi sau: Giá trị ' Không thể chuyển đổi thuộc tính MaximumValue của 'vdGrossTonnage' thành loại 'Số nguyên'.
tôi không có bất kỳ yêu cầu giá trị tối đa cụ thể trong hệ thống, vì vậy tôi sẽ giống như nó là "mặc định" để Int32.MaxValue
(mặc dù tôi sẽ phải nhập 2,147,483,647, vì MaximumValue
dường như không chấp nhận Int32.MaxValue
không đổi).
Tại sao số RangeValidator
thuộc loại Integer
sẽ không chấp nhận thuộc tính MaximumValue
bị thiếu, nhưng đối với một trong các loại Double
thì điều này có ổn không?
Chỉ cần theo dõi nhỏ: trong trường hợp tôi bỏ 'MaximumValue' cho loại kép, điều này thực sự có nghĩa là cả min và max là 0. Tại sao trang của tôi xác thực trường một cách chính xác (-1 không hợp lệ và 1 là hợp lệ (tôi đã kiểm tra kỹ và điều này thực sự hiệu quả))? – Nailuj
@Nailuj Tôi không thể chứng thực cho phát hiện của bạn rằng trang xác thực chính xác với "1" làm đầu vào. Nếu tôi thả các điều khiển của bạn (từ đoạn đầu tiên của bạn ở trên) vào một trang mới trong một dự án trang web trống, nhập "1" và sau đó gây postback (tôi đã thêm một nút) * không * gây ra lỗi xác thực. –
Nó không xác thực chính xác. –