Обновить десятичные числа при использовании других локальных - PullRequest
3 голосов
/ 03 июня 2011

У меня есть эта модель

public class SalesModelView
{
    [Key]
    public int SaleId { get; set; }
    public int ShopId { get; set; }
    public string ShopName { get; set; }

    [Display(Name = "Date")]
    public DateTime SaleDate { get; set; }

    [Required]
    [Display(Name = "Timer")]
    [Range(0, 24)]
    public int Hours { get; set; }
    [Required]
    [Display(Name = "Salg")]
    public Decimal Sales { get; set; }
    [Required]
    [Display(Name = "Behandlinger")]
    public Decimal Treatments { get; set; }

    [Display(Name = "Omsætning")]
    public Decimal Turnover { get; set; }
    [Display(Name = "Oms./Timer")]
    public Decimal TurnoverHour { get; set; }
    [Display(Name = "Effektivitet")]
    public Decimal Efficiency { get; set; }
}

и в датской локали десятичное число обычно отображается как 280.800,00, поэтому . как тысячи и , как десятичное место.

Мой взгляд показывает правильные вещи

enter image description here

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

enter image description here

( исходное изображение для лучшей визуализации )

Таким образом, число 546.400 преобразуется в 546,4

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

$("form").bind("submit", function() {
  $(".number").each(function(){
    var v = $(this).val(v).replace('.','');
    $(this).val(v);
  });
});

Какую технику вы, ребята, используете для таких вещей?

P.S. Я прочитал статью Хансельмана , но у меня все еще были те же проблемы, когда я передаю его на Controller, что идет не так, все хорошо в View

1 Ответ

2 голосов
/ 03 июня 2011

DefaultModelBinder не работает хорошо в этих ситуациях. Вы можете написать свои собственные или убедиться, что отправили значения en-US. Вот статья, рассказывающая об этом.

Десятичные значения привязки модели

...