Как работать с Jquery Ajax Call to Webservice, ожидающим европейский или американский формат даты? - PullRequest
1 голос
/ 26 января 2011

В моей компании много клиентов, некоторые из которых используют формат даты в евро d.M.yyyy, тогда как другие наши клиенты обычно используют MM / dd / yyyy. Проблема в том, что я делаю вызов Jquery ajax:

$. Ajax ({url: "/v06/Services/Financials/ChargeEntry.asmx/UpdateProrationAmounts", данные: JSON2.stringify (DTO), тип: "POST", contentType: "application / json", dataType: "json", success: function (res) {...});

, который создает объект, который содержит несколько свойств, представляющих значения даты. Когда сериализованные данные достигают веб-службы, она не может разобрать формат даты в евро в соответствующем свойстве Date в DTO на сервере. Мне раньше не приходилось иметь дело с культурными вещами в приложении, так что я чувствую себя как потерянный кролик ...

По сути, цель состоит в том, чтобы отправить строку даты JSON на сервер, независимо от формата, который он представляет, передать его методу, который использует его для некоторых вычислений, затем вернуть его клиенту и каким-то образом вернуть в тот же формат. Вероятно, было бы лучше отправить его обратно клиенту в виде строки, чтобы обойти формат даты MS Ajax, чтобы решить проблему на стороне клиента по преобразованию его в правильный формат. У кого-нибудь есть идеи, как справиться с другим аспектом?

Спасибо!

1 Ответ

1 голос
/ 26 января 2011

Нм, я ответил на свой вопрос. На случай, если кому-то интересно, вот что я сделал. На клиенте:

var cultureName = "<% = System.Threading.Thread.CurrentThread.CurrentCulture.Name%>";

, который дал мне информацию о культуре для текущей темы. Я передаю эту информацию обратно в запрос Ajax. И в веб-сервисе я просто добавил следующую проверку:

Если glE.CultureName = "en-GB", то
Dim ci As New System.Globalization.CultureInfo ("en-GB") System.Threading.Thread.CurrentThread.CurrentCulture = ci System.Threading.Thread.CurrentThread.CurrentUICulture = ci System.Threading.Thread.CurrentThread.CurrentUICulture.DateTimeFormat = New System.Globalization.CultureInfo ("de-DE", False) .DateTimeFormat
Конец, если

Вероятно, это не лучший способ сделать что-то, но это послужило моей цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...