karthime Ответов: 1

Как пройти дату в angulajs GET request


Мне нужно передать поле даты в angularjs $http Get request в asp.net веб-api. Пожалуйста, подскажите мне, как правильно передать поле даты.

Что я уже пробовал:

Ниже приведен мой код, здесь переменная writedate имеет значение даты.

В AngularJS:
var response = $http.get(config.apiUrl + "GetMonthDates/" + writedate + "?IsTodayDate=" + IsTodayDate);


Веб-Api:
[HttpGet]
        public IHttpActionResult GetMonthDates(DateTime date, bool IsTodayDate)
        {
         .....
        }

1 Ответов

Рейтинг:
12

Richard Deeming

Используйте инвариантный формат yyyy-MM-dd Поскольку вы передаете значение в строке запроса, оно будет проанализировано с использованием инвариантной культуры:
Melvyn Harbour - MVC ModelBinder и локализация[^]

Если вы хотите включить время, вы можете использовать любой из них Дата.прототип.метод toJSON()[^] или Дата.прототип.toISOString()[^].

В противном случае, если у вас нет существующей функции форматирования даты, вы можете свернуть свою собственную:

if (!Date.prototype.toISODateString) {
  (function() {

    function pad(number) {
      if (number < 10) {
        return '0' + number;
      }
      return number;
    }

    Date.prototype.toISODateString = function() {
      return this.getUTCFullYear() +
        '-' + pad(this.getUTCMonth() + 1) +
        '-' + pad(this.getUTCDate());
    };
  }());
}

...

var response = $http.get(config.apiUrl + "GetMonthDates/" + writedate.toISODateString() + "?IsTodayDate=" + IsTodayDate);