Почему значение даты и времени изменяется, когда данные попадают в действие контроллера?Использование AngularJs и Asp.Net Web API 2 - PullRequest
0 голосов
/ 20 февраля 2019

Когда я отправляю данные со стороны клиента на сторону сервера, меняются два свойства типа даты-времени «ReviewStartDate» и «ReviewEndDate».Два свойства даты и времени не изменяются на стороне клиента.Но на стороне сервера значение свойства два изменилось. как можно решить эту проблему очень хорошо?

Скриншот отправки данных на стороне клиента Client side debug screenshot

Скриншот отладки на стороне сервера при нажатии на действие контроллера Server side debug screenshot

После преобразования в местное время enter image description here

Вот мой класс модели

public class Product
{
    public int ProductId { get; set; }
    public DateTime? ReviewStartDate { get; set; }
    public DateTime? ReviewEndDate { get; set; }

}

Вотмой контроллер

    [HttpPost]
    [Route("AddProduct")]
    public IHttpActionResult AddProduct(Product product)
    {
        return Ok(services.AddProduct(product).Data);
    }

1 Ответ

0 голосов
/ 20 февраля 2019

Прежде всего на стороне клинта, перед отправкой данных на сервер вы конвертируете их в UTC.Но вы не показали свой код переднего плана, я не могу понять, где.

Но если я правильно вас понимаю, вы хотите преобразовать utc в местное время и сделать это только на стороне сервера.( это будет работать, но, честно говоря, лучше изменить сторону клиента )

Вы можете изменить параметры json в файле запуска:

services.AddMvc()
            .AddJsonOptions(
                opt => opt.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Local)
            .SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

например, я отправляю это:

"execute_date": "2019-02-20T00: 00: 00.000Z" - utc

и сериализовать, как это, для моего местного времени:

2/20/ 19 3:00:00

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