@HeBonpoc

Entity framework validation for decimal type. Как сделать чтобы пропускало дробное значение?

Если через запятую, то на клиенте:
The field Сумма must be a number.

Если через точку, то сервак отвечает
The value '123.5' is not valid for Сумма

В модели:
[DisplayName("Сумма")]
        public decimal Sum { get; set; }

В представлении:
<div class="form-group">
            @Html.LabelFor(model => model.Sum, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.Sum, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.Sum, "", new { @class = "text-danger" })
            </div>
        </div>
  • Вопрос задан
  • 2776 просмотров
Решения вопроса 1
AlekseyNemiro
@AlekseyNemiro
full-stack developer
Для редактирования использовать тип string. Перед сохранение в базу преобразовывать в decimal.
В своих проектах использую вспомогательный класс, который имеет методы для работы с числами и умеет понимать любой десятичный разделитель. Конкретно, для данной ситуации, есть метод ToDecimal (код открыт, лицензия не запрещает использовать частями, если что).

[DisplayName("Сумма")]
public string Sum { get; set; }

public decimal SumDec 
{ 
  get
  { 
    return Convertion.ToDecimal(this.Sum); 
  }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы