Saya ingin menentukan bahwa bidang desimal untuk harga harus> = 0 tetapi saya tidak benar-benar ingin memaksakan nilai maks.
Inilah yang saya miliki sejauh ini ... Saya tidak yakin apa cara yang benar untuk melakukan ini.
[Range(typeof(decimal), "0", "??"] public decimal Price { get; set; }
c#
.net
asp.net-mvc
data-annotations
pengguna169867
sumber
sumber
Jawaban:
Bagaimana dengan sesuatu yang seperti ini:
Itu harus melakukan apa yang Anda cari dan Anda dapat menghindari menggunakan string.
sumber
The field Fixed price discount must be between 0.01 and 1.79769313486232E+308.
Jika Anda khawatir string terlihat bagus, Anda bisa melakukan ini:
Ini akan memiliki pesan kesalahan default:
sumber
Sepertinya tidak ada pilihan selain memasukkan nilai maksimal secara manual. Saya berharap ada beberapa jenis kelebihan di mana Anda tidak perlu menentukan satu.
sumber
[Min(0)]
- Ini juga memiliki pesan validasi yang lebih baik. Saya sarankan memperbarui jawaban AndaKamu bisa memakai:
Ini akan memaksakan nilai minimum yang diperlukan 0 (nol), dan tidak ada nilai maksimum.
Anda perlu DataAnnotationsExtensions untuk menggunakan ini.
sumber
Jika Anda bekerja dengan harga, saya yakin Anda dapat dengan aman berasumsi tidak ada yang lebih dari 1 triliun dolar.
Saya akan menggunakan:
Atau jika Anda benar-benar membutuhkannya, cukup tempelkan nilai
Decimal.MaxValue
(tanpa koma):79,228,162,514,264,337,593,543,950,335
Salah satu dari ini akan bekerja dengan baik jika Anda bukan dari Zimbabwe.
sumber
[Range(0.0,Decimal.MaxValue)]
?Anda dapat menggunakan validasi khusus:
Jenis metode validasi:
sumber
Saya akan mencoba sesuatu seperti ini:
Masalah dengan melakukan ini, adalah kompiler menginginkan ekspresi konstan, yang tidak diizinkan
((double)0).ToString()
. Kompilator akan mengambilsumber
menggunakan Rentang dengan
Semoga ini bisa membantu
sumber
[Rentang (0,01,10000000000, ErrorMessage = "Harga harus lebih baik daripada nol!")]
sumber
Saya akan meletakkan
decimal.MaxValue.ToString()
karena ini adalah langit-langit yang efektif untuk tipe decmial itu setara dengan tidak memiliki batas atas.sumber