Asp.Net 当 url 末尾有一个点 (.) 时,MVC 路由操作方法不会调用

Asp.Net MVC route action method doesn't call when there is a DOT (.) at the end of url

配置的路线:

routes.MapRoute(
  name: "RedirectToProduct",
  url: "product/page/p{productId}/{shortName}",
  defaults: new { controller = "Product", action = "RedirectToProduct", shortName = UrlParameter.Optional }
);

操作方法:

public class ProductController : Controller
{
    public async Task<ActionResult> RedirectToProduct(string productId, string shortName)
    {
    }
}

问题..

我想要的是-无论我在最后添加点 (.) 还是不在 productUd 参数中,调用都应该在控制器的操作方法中进行。

提前致谢!

如果点是问题所在,例如 product/page/p118.5,则将 runAllManagedModulesForAllRequests = true 添加到您的 web.config,例如:

<system.webServer>
   <modules runAllManagedModulesForAllRequests="true">
     ...
   </modules>
 </system.webServer>