none
Десятичная запятая в качестве разделителя asp.net mvc 3 RRS feed

  • Вопрос

  • Всем доброго дня. Не могу разобраться с мелкой проблемой.

    Есть приложение которое я создаю с помощью asp.net mvc 3, использую razor.

    Есть тип данных decimal, в sql сервере храниться примерно в таком формате - 1200,00

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

    Пробовал делать так как написано тут - http://msdeveloper.ru/blogs/onlinestore/1204/

    Т.е. добавить файл с яваскриптом в каталог приложения, но безрезультатно.

    Вот листинг файла, подключал его в _layout.chtml

    $.validator.methods.range = function (value, element, param) {
        var globalizedValue = value.replace(",", ".");
        return this.optional(element) || (globalizedValue >= param[0] && globalizedValue <= param[1]);
    }
    
    $.validator.methods.number = function (value, element) {
        return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:[\s\.,]\d{3})+)(?:[\.,]\d+)?$/.test(value);
    }

    Пробовал включить глобалицаию, через ajax, но тоже не получилось...

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

    31 августа 2012 г. 10:56

Ответы

  • Добавить дело первое. Потом его нужно подключить, к той странице где Вы его используете.
    • Помечено в качестве ответа akavoid 3 сентября 2012 г. 5:04
    1 сентября 2012 г. 18:59
    Модератор
  • "А Вы не могли бы объяснить, почему в layout подключать нельзя?" - почему нельзя, ещё как можно. Просто всё зависит от проекта, важна последовательность подключения. Нужно знать точно, что после чего подключать, чтобы переопределить (как в Вашем случае) или наоборот, не переопределять, то что содержится до. Браузер подключает скрипты последовательно, в том порядке, в котором они расположены в файле разметки. Поэтому где и как очень важно. Только не переусердствуйте и случайно не подключайте одно и тоже дважды, это тоже источник проблем, хотя можно сначала и не заметить.
    • Помечено в качестве ответа Abolmasov Dmitry 6 сентября 2012 г. 8:40
    3 сентября 2012 г. 5:56
    Модератор

Все ответы

  • Добавить дело первое. Потом его нужно подключить, к той странице где Вы его используете.
    • Помечено в качестве ответа akavoid 3 сентября 2012 г. 5:04
    1 сентября 2012 г. 18:59
    Модератор
  • Спасибо.

    А Вы не могли бы объяснить, почему в layout подключать нельзя?


    • Изменено akavoid 3 сентября 2012 г. 5:06
    3 сентября 2012 г. 5:05
  • Попробуйте, как сказал Yatajga и как написано в статье подключить файл на нужную страницу, на ту в которой вы осуществляете ввод и требуется валидация
    <script src="@Url.Content("~/ScriptsFix/jquery.validate.fix.js")" type="text/javascript"></script>

    Если чей-либо ответ решает вашу проблему, пожалуйста, не забудьте отметить его (кнопка 'Пометить как ответ' под сообщением). Спасибо.

    Для связи [mail]

    3 сентября 2012 г. 5:14
  • "А Вы не могли бы объяснить, почему в layout подключать нельзя?" - почему нельзя, ещё как можно. Просто всё зависит от проекта, важна последовательность подключения. Нужно знать точно, что после чего подключать, чтобы переопределить (как в Вашем случае) или наоборот, не переопределять, то что содержится до. Браузер подключает скрипты последовательно, в том порядке, в котором они расположены в файле разметки. Поэтому где и как очень важно. Только не переусердствуйте и случайно не подключайте одно и тоже дважды, это тоже источник проблем, хотя можно сначала и не заметить.
    • Помечено в качестве ответа Abolmasov Dmitry 6 сентября 2012 г. 8:40
    3 сентября 2012 г. 5:56
    Модератор
  • А как узнать в каком порядке подключать?
    4 сентября 2012 г. 5:22
  • Тут однозначного ответа нет, всё зависит от конкретной ситуации. Просто помните, что браузер выполняет скрипты по порядку.
    4 сентября 2012 г. 9:56
    Модератор