Saya ingin hanya mengizinkan formulir untuk dikirim jika nilai dalam bidang tertentu lebih besar dari 0. Saya pikir mungkin atribut Mvc Range akan memungkinkan saya memasukkan hanya 1 nilai untuk menandakan hanya lebih besar dari tes, tapi tidak beruntung di sana karena bersikeras pada nilai Minimum DAN Maksimum.
Adakah ide bagaimana ini bisa dicapai?
Please enter a value less than or equal to 2147483647
.Saya menemukan jawaban ini untuk memvalidasi nilai positif apa pun untuk float / double. Ternyata tipe ini memiliki konstanta yang berguna untuk 'Epsilon'
[Required] [Range(double.Epsilon, double.MaxValue)] public double Length { get; set; }
sumber
Anda dapat membuat validator Anda sendiri seperti ini:
public class RequiredGreaterThanZero : ValidationAttribute { /// <summary> /// Designed for dropdowns to ensure that a selection is valid and not the dummy "SELECT" entry /// </summary> /// <param name="value">The integer value of the selection</param> /// <returns>True if value is greater than zero</returns> public override bool IsValid(object value) { // return true if value is a non-null number > 0, otherwise return false int i; return value != null && int.TryParse(value.ToString(), out i) && i > 0; } }
Kemudian sertakan file itu dalam model Anda dan gunakan sebagai atribut seperti ini:
[RequiredGreaterThanZero] [DisplayName("Driver")] public int DriverID { get; set; }
Saya biasanya menggunakan ini pada validasi dropdown. Perhatikan bahwa karena ini memperluas atribut validasi, Anda dapat menyesuaikan pesan kesalahan dengan parameter.
sumber