Какое средство Asp.net Mvc я должен использовать для автоматического преобразования тиков в DateTime при передаче в контроллер? - PullRequest
0 голосов
/ 06 ноября 2011

Я хочу, чтобы у моего API были красивые URL

/controller/action/param1/param2...

Что бы я хотел, это что-то вроде

 public ActionResult Index([ConvertFromTicks]DateTime birthdate, string meal)
        {

Или, может быть, даже глобальный ActionFilter ... какая бы ни была лучшая практика. Моя проблема в том, что механизм маршрутизации даже не видит контроллер , если ему не передан действительный DateTime. Это делает невозможной маршрутизацию красивых URL с параметрами DateTime. Другие ответы на аналогичные вопросы предполагают передачу даты в виде количества миллисекунд с начала эпохи или другого удобного для URL формата и преобразование ее в контроллер. Я не хочу делать это для каждого контроллера, который использует параметр DateTime (почти все 60 из них). Я также не хочу, чтобы следующий разработчик, поддерживающий это решение, не забывал вызывать волшебные слова или получал запутанное исключение 404, DateTime.Parse или противоречивые результаты.

Какие у меня есть варианты?

1 Ответ

0 голосов
/ 06 ноября 2011

Не зная, как вы хотите, чтобы ваш URL выглядел, если вы хотите, чтобы URL был удобочитаемым и гибким, то, возможно, такой синтаксис, как http://service/action?date=YYYY-MM-DDTHHMMSS или date = "некоторая строка", даст вам большую гибкость и статический вспомогательный метод для анализа различных строк.

Поскольку у вас большое количество контроллеров, я бы выбрал Action Filter, чтобы сохранить код в чистоте.

...