私が尋ねている理由は、IISがBin、App_Data、App_Codeなどの特定のASP.NETフォルダーを保護するためです。URLが実際のファイルシステムフォルダーにマップされていない場合でも、IISはパスセグメントが次のいずれかに等しいURLを拒否します。言及された名前。
これは、私がこのようなルートを持つことができないことを意味します:
{controller}/{action}/{id}
...ここで、idは任意の文字列にすることができます。
Catalog/Product/Bin
したがって、このセキュリティ対策を無効にする代わりに、次のようにIDの前にサフィックスを使用してルートを変更します。
{controller}/{action}_{id} // e.g. Catalog/Product_Bin
{controller}/{action}/_{id} // e.g. Catalog/Product/_Bin
ただし、IDに新しいデリメータが含まれている場合、これらのルートは機能しません。この場合は、たとえば、
// These URL won't work (I get 404 response)
Catalog/Product_Bin_
Catalog/Product/_Bin_
Catalog/Product/__Bin
なんで?わからない、私にはバグのように見える。これらのルートを機能させるにはどうすればよいですか?idは任意の文字列にすることができますか?