В этом сообщении на форуме описаны два исправления вашего решения.
Первое - установить тип как объект, а затем запустить для него регулярное выражение.Второй - переопределить сообщение об ошибке, когда у вас есть доступ к ModelState.
Желательно, чтобы я объявил FirstlySum
как тип объекта, а затем всякий раз, когда вам нужно использовать это значение, вы должны использовать другое свойствоназывается что-то вроде FirstlySumTranslated
, что выглядит следующим образом:
[Required(ErrorMessage = "مبلغ پیشنهادی را وارد کنید")]
[RegularExpression("^[+]?\\d*$", ErrorMessage = "*")]
public object FirstlySum { get; set; }
public decimal FirstlySumTranslated {
get { return decimal.Parse(FirstlySum); }
}
Также обратите внимание, что ваше регулярное выражение не захватывает числа с десятичным знаком.Например, 1.23 будет рассматриваться как недопустимое значение.
Регулярное выражение, которое будет работать, будет ^\+?(\d+\.)?\d+$