Десятичное значение в ASP.NET MVC и SQL Server - PullRequest
0 голосов
/ 07 июня 2019

У меня небольшая проблема с десятичным значением в приложении ASP.NET MVC, которое я пишу. У меня есть привязка NPoco к таблице базы данных и запись Price, которая определена как десятичная (9,2). Вот модель записи, которую я использую:

[Display(Name = "Price")]
[Required]
[DisplayFormat(DataFormatString = "{0:0,##}", ApplyFormatInEditMode = true)]
public decimal Price { get; set; }

Далее у меня есть нокаутированная модель JS, которая связывает все параметры и работает нормально. Любое другое поле занято и правильно связано. Что касается цены, у меня есть этот HTML-код:

<input type="text" required data-bind="value: Price" class="form-control input-sm" id="priceID"/>

Теперь, если я вставляю значение с запятой, все работает нормально, и значение вставляется в БД правильно (например, 15,20), но если я использую точку, значение 0,00 вставляется в базу данных. Самое смешное, когда я перезагружаю объект для редактирования, значение цены устанавливается и пишется с точкой внутри html-страницы.

Итак, мой вопрос: есть ли способ принять оба формата (значит, с точкой и запятой)?

1 Ответ

0 голосов
/ 07 июня 2019

Я не думаю, что это возможно, хотя вы можете форсировать одну локаль с помощью <html lang="en-US" > и / или обрабатывать ввод соответственно.

Работа каждого пользователя будет отличаться в зависимости от региональных настроек их компьютеров, и может быть неразумно заставлять разделитель вводить запятую или наоборот.Но вы можете заменить или отключить ввод указанных символов.

Вероятно, самый элегантный способ - это обрабатывать все на стороне сервера, конвертировать между локалями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...