ASP .NET роутинг в JavaScript

Наш читатель поделился с нами удобным способом обработки запросов на JavaScript в ASP .NET.


Я — студент 2-го курса, в свободное от учебы время пилю для себя небольшой сайтик на ASP .NET. И в какой-то момент, при написании очередной формы, которая отправляет данные при помощи AJAX, я поймал себя на мысли, что мне надоело снова и снова указывать URL для отправки запроса, и было бы неплохо подключить к JavaScript’y роутинг, который есть у меня на backend’е.

Выбор способа реализации

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

  • через URL вида route/{routename} c последующим редиректом;
  • через реплейсмент-тег вида «[Route:%route_name%]», который при отдаче файла будет заменяться на URL cамого роута.

Первый вариант практически сразу был отброшен как слишком скучный, и я приступил к реализации задуманной функциональности.

Реализация

Немного почитав про то, как ASP .NET обрабатывает реквесты, я решил, что мне следует написать кастомный HttpHandler, который будет по регулярному выражению искать в файлах *.js строку вида «[Route:%route_name%]» и заменять ее на искомый URL.

Итоговый код:

После регистрации этого хэндлера в web.config’e все заработало, как нужно.

Файл, который был запрошен:

Файл, который был получен:

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