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

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

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

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

нет :) навесных решений есть масса. jQuery.globalization например, своя реализация EditorTemplate, загонять валую в промежуточный ModelView в строковую пропертю. не то всё это.
...
Рейтинг: 0 / 0
11.01.2013, 08:58
    #38105831
Местный король Делфей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC 3/4 и decimal (или float там, по вкусу)
в 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
11.01.2013, 17:00
    #38106778
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC 3/4 и decimal (или float там, по вкусу)
Местный король Делфей,

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

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

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

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

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

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

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


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