Является ли «синтаксический анализ» подмножеством «компиляции»?

Когда я думаю о «компиляции», я думаю о превращении кода C ++ в двоичный файл. Или, возможно, C # в байт-код CLR. Но «синтаксический анализ» может быть чем-то вроде синтаксического анализа Python или языка веб-шаблонов, при котором не требуется создавать какие-либо двоичные файлы, но он может либо выполнять код немедленно, оператор за оператором, либо напрямую выводить HTML.

Вы бы в любом случае выполняли одну и ту же задачу? Игнорируя синтаксис языка, Даже если URL-адрес не соответствует реальной папке файловой системы, IIS отклоняет URL-адрес с сегментом пути, равным одному из упомянутых имен.

Это означает, что у меня не может быть маршрута, подобного этому:

{controller}/{action}/{id}

... где id может быть любой строкой, например.

Catalog/Product/Bin

Итак, вместо отключения этой меры безопасности я хочу изменить маршрут, используя суффикс перед идентификатором, например:

{controller}/{action}_{id} // e.g. Catalog/Product_Bin
{controller}/{action}/_{id} // e.g. Catalog/Product/_Bin

Но эти маршруты не будут работать, если идентификатор содержит новый разделитель, _ в данном случае, например

// These URL won't work (I get 404 response)
Catalog/Product_Bin_
Catalog/Product/_Bin_
Catalog/Product/__Bin

Почему? Не знаю, мне кажется, это ошибка. Как я могу заставить эти маршруты работать, где id может быть любой строкой?

12
задан Max Toro 21 April 2011 в 03:56
поделиться