powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC 3/4 и decimal (или float там, по вкусу)
7 сообщений из 7, страница 1 из 1
MVC 3/4 и decimal (или float там, по вкусу)
    #38105682
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача: заставить ASP.NET MVC генерить в поля значения decimal в нужном формате (допустим с точкой, а не с запятой), не прибегая для этого к смене глобального CultureInfo (в веб.конфиге, или на поток).

Пример использования:

@Html.EditorFor(m => m.MyDecimalField)

Вот, чтоб такой вызов работал как мне надо (без шаманств в EditorTemplates, и передач каких-то дополнительных параметров).
Есть идеи?
...
Рейтинг: 0 / 0
MVC 3/4 и decimal (или float там, по вкусу)
    #38105705
.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.
Гость
hVosttЗадача: заставить ASP.NET MVC генерить в поля значения decimal в нужном формате (допустим с точкой, а не с запятой),
не прибегая для этого к смене глобального CultureInfo (в веб.конфиге, или на поток)без проблем
генери всегда только целые числа
...
Рейтинг: 0 / 0
MVC 3/4 и decimal (или float там, по вкусу)
    #38105721
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.без проблем
генери всегда только целые числа

нет :) навесных решений есть масса. jQuery.globalization например, своя реализация EditorTemplate, загонять валую в промежуточный ModelView в строковую пропертю. не то всё это.
...
Рейтинг: 0 / 0
MVC 3/4 и decimal (или float там, по вкусу)
    #38105831
Фотография Местный король Делфей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в Global.asax
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
        protected void Application_AcquireRequestState(object sender, EventArgs e)
        {
            //ставим десятичный разделитель - точку
            var cInfo = Thread.CurrentThread.CurrentCulture.Clone() as CultureInfo;

            cInfo.NumberFormat.NumberDecimalSeparator = ".";
            cInfo.NumberFormat.CurrencyGroupSeparator = ".";
            cInfo.NumberFormat.PercentDecimalSeparator = ".";

            Thread.CurrentThread.CurrentCulture = cInfo;
            Thread.CurrentThread.CurrentUICulture = cInfo;
        }


меняет только десятичный разделитель, остальное остается как в текущей культуре
...
Рейтинг: 0 / 0
MVC 3/4 и decimal (или float там, по вкусу)
    #38106778
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Местный король Делфей,

а без ковыряния в CurrentThread.CultureInfo — никак? неужели нет способов? для байндинга решение есть:

ModelBinders.Binders.Add(typeof(decimal), new DecimalModelBinder());

а в обратную сторону?
...
Рейтинг: 0 / 0
MVC 3/4 и decimal (или float там, по вкусу)
    #38106859
Фотография Местный король Делфей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМестный король Делфей,

а без ковыряния в CurrentThread.CultureInfo — никак? неужели нет способов? для байндинга решение есть:

ModelBinders.Binders.Add(typeof(decimal), new DecimalModelBinder());

а в обратную сторону?
а в обратную сторону - решения на вскидку вы перечислили в предыдущем посте.
с точки зрения логики как раз-таки сменить в текущей культуре только десятичный разделитель и является самым верным решением.
...
Рейтинг: 0 / 0
MVC 3/4 и decimal (или float там, по вкусу)
    #38106996
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Местный король Делфей,

А если вам такое поведение нужно только для некоторых моделей?
Или для пропертей с определенным аттрибутом?
В общем, похоже надо ковырять ValueProvider, не решение получается какое-то громоздкое.
Думал есть способы по-изящнее.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC 3/4 и decimal (или float там, по вкусу)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]