配置的路由:
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)
{
}
}
问题
- 当我点击url时http://localhost:1234/product/page/p1185/,那么我就是在控制器的操作方法中获取调用
- 但是当我点击url时http://localhost:1234/product/page/p118.5,我是在控制器的操作方法中未得到调用。我看到HTTP错误404.0-未找到(请参阅productId中有DOT(.)。)
我想要的是-无论我是否在productUd参数的末尾添加DOT(.),调用都应该进入控制器的操作方法。
提前感谢!
如果点是问题所在,如product/page/p118.5
,则将runAllManagedModulesForAllRequests = true
添加到web.config中,如:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
...
</modules>
</system.webServer>