我问的原因是因为 IIS 保护某些 ASP.NET 文件夹,如 Bin、App_Data、App_Code 等。即使 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 可以是任何字符串?