我對int字段指定了以下驗證。MVC5 StringLength驗證失敗的int
[Required(ErrorMessage = ValidationMessages.ResponseRequired)]
[Digits(ErrorMessage = ValidationMessages.DigitsOnly)]
[StringLength(6, MinimumLength = 6, ErrorMessage = ValidationMessages.InvalidLength)]
public int? Code { get; set; }
當我取出StringLength然後帖子成功。有了它,我得到500例外:
無法投類型「System.Int32」的對象爲類型「System.String」
這到底是怎麼回事?我需要爲int編寫一個自定義的嗎?在這種情況下,我只是想確保用戶輸入6位數字。
我們將代碼發送給用戶,它是6位數字。我要的只是檢查他們是否輸入了6位數字。 – 2014-10-28 01:18:21
我已將其更改爲正則表達式[RegularExpression(「^ {6} $」,ErrorMessage = ValidationMessages.InvalidLength)],但現在我的ModelState.IsValid返回爲false。 – 2014-10-28 03:07:05
我必須忽略這一點。如果您得到的整數輸入大於99,999(如上面的代碼所強調的那樣),那麼您至少有6位數字。你總是可以改變它到範圍(100000,999990),以確保完全6位數...... – 2014-10-28 08:13:31