Причина, по которой я спрашиваю, заключается в том, что IIS защищает определенные папки ASP.NET, такие как Bin, App_Data, App_Code и т.д. Даже если 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 может быть любой строкой?