@digna
Программист

Как инсертить значения с точкой или запятой в ASP.NET Core 2.0?

Я считаю что мой вопрос - самый топовый на сегодня.
https://github.com/dignatukhin/albeor1.git
Microsoft топовая компания говорите? ну да, кодеры тоже у них топовые (ASP.NET Core 2.0). Ватафак, как это починить?
В модели:
[Required]
        public decimal Price { get; set; }

В контроллере:
[HttpPost]
        [ValidateAntiForgeryToken]
        public async Task<IActionResult> Create([Bind("ID,Title,ReleaseDate,Genre,Price, Rating")] Movie movie)
        {
            if (ModelState.IsValid)
            {
                _context.Add(movie);
                await _context.SaveChangesAsync();
                return RedirectToAction(nameof(Index));
            }
            return View(movie);
        }

В HTML:
<div class="form-group">
                <label asp-for="Price" class="control-label"></label>
                <input asp-for="Price" class="form-control" />
                <span asp-validation-for="Price" class="text-danger"></span>
            </div>

07tMJXmbqho.jpg
  • Вопрос задан
  • 1060 просмотров
Решения вопроса 1
@mletov
1) Попробуйте float или double
2) Для input добавьте type="text"

UPD
Вот так заработало, если вводить через запятую
[DataType(DataType.Currency, ErrorMessage = "Must be a Deciaml!")]
public float Price { get; set; }
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
То, что Вы отметили поле как [Required], означает только то, что это поле должно быть обязательно заполнено. Однако, логику проверки Вы не указывали. А виноваты Microsoft...
Ответ написан
@BashkaMen
C# программист
Возможно double?
Ответ написан
@digna Автор вопроса
Программист
AleXr64 на GitHub предложил добавить [RegularExpression(@"^\d+.?\d{0,2}$", ErrorMessage = "Invalid Target Price; Maximum Two Decimal Points.")]
Может быть кому-то и интересно, но этот вариант тоже не помог.
Ответ написан
Комментировать
bla_bla_bla
@bla_bla_bla
Если нужно биндить значение с плавающей точкой, то вот так можно:
https://github.com/badhitman/AspDotNetCore2BinderF...

Не проканает для JS валидации на стороне клиента, но сервер отработает корректно.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы