Steven8579 Ответов: 1

Как вы сортируете столбец datetime в .NET MVC5


У меня есть ASP.NET приложение MVC, где у меня есть столбец в таблице, который отображает значения DateTime из базы данных MySQL. Колонки сортируются по строковое значение, а не значение типа datetime, на мой взгляд, показатель. Мне нужно, чтобы он отображался как пятница, 14 августа 2020 года, 05:13 вечера и сортировался по дате. Если я заставляю его показывать так, как мне нужно, он не сортируется, а если я заставляю его сортировать, он не показывает так, как мне нужно.

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

Я получаю его для отображения в пятницу, 14 августа 2020 года, 05:13 вечера с помощью:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:f}")]

Мне нужно, чтобы он сортировался по дате/времени.
Это код, который у меня есть.

DataView:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:f}")]                               
public System.DateTime JobDateTime { get; set; }


Контроллер:
public ActionResult Index()
{
    return View(db.jobs.OrderByDescending(x=>x.JobDateTime).ToList());
}


индексированное представление:
@Html.DisplayFor(modelItem => item.JobDateTime)



Я также пытался сделать это в своем контроллере:
db.jobs.OrderByDescending(x => x.JobDateTime).Select(d => d.ToString("f")).ToList()


А это:

db.jobs.OrderByDescending(x => x.JobDateTime).ToList().Select(d => d.ToString("f"))


Оба они выдают ошибку, говорящую о том, что для ToString нет метода перегрузки, который принимает 1 аргумент


Любая помощь будет очень признательна. Заранее благодарю вас!

0x01AA

Наивный вопрос: почему бы уже не сортировать, когда данные извлекаются из mySQL?

1 Ответов

Рейтинг:
2

Gerry Schmitz

db.jobs.OrderByDescending(x => x.JobDateTime).Select(d => d.JobDateTime.ToLongDateString()).ToList()