当网址末尾有DOT(。)时,Asp.Net MVC路由操作方法不会调用

时间:2015-02-06 09:48:30

标签: c# asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

已配置路由:

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)
    {
    }
}

问题..

我想要的是 - 无论是在最后添加DOT(。)还是在productUd参数中都没有,调用应该进入控制器的动作方法。

提前致谢!

1 个答案:

答案 0 :(得分:2)

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

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