Большое спасибо! Я пытался с 0: дд / мм / гггг, но это не было достаточно хорошо. Я не думаю, что справился бы с этой проблемой без вашей помощи! Еще раз спасибо!

ема

В этот момент у меня возникла проблема, когда мое действие Get пытается прочитать параметр DateTime в другом формате, который отправляется.

В то время как отправленное DateTime имеет этот формат:0:dd/MM/yyyy Get Actions ожидает:0:MM/dd/yyyy

Решение (возможно)

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

Действие GET

    public async Task<IActionResult> Details(int? id, [ModelBinder(typeof(PModelBinder))]DateTime date)

Класс ModelBinder

Теперь вот несколько вещей, которые отсутствуют, и я не знаю, как завершить это правильно:

public class PModelBinder : IModelBinder
{
    public Task BindModelAsync(ModelBindingContext bindingContext)
    {
        string theDate = bindingContext.HttpContext.Request.QueryString["date"]; 
        //What should I write inside the []? 
        //I've tried QueryString["date"] which is the name of the parameter but it says is wrong
        DateTime dt = new DateTime();
        bool success = DateTime.TryParse(date); //Should I apply ParseExact? How should I do it?
        if (success)
        {
            return new //what should I be returning here? dt?
        }

    }
}

У меня есть несколько вопросов, помеченных как комментарии в приведенном выше коде, так как я только начинаю понимать привязку пользовательской модели. Надеюсь, кто-нибудь может дать мне несколько советов.

Я следую за этой статьей:

https://weblogs.asp.net/melvynharbour/mvc-modelbinder-and-localization

Но это из2008 !!!, Хотя это кажется действительным, так как это именно та проблема, которую я имею с моим действием GET (различные форматы даты)

Обновление: дополнительная информация

Дата параметра определяется как:

    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
    public DateTime FechaLInicioLiq { get; set; }

и сборка URL при вызове этого действия GET имеет такую ​​структуру для параметра даты:

date=10%2F11%2F2017%200%3A00%3A00

Ответы на вопрос(1)

Ваш ответ на вопрос