【问题标题】:Asp.Net MVC route action method doesn't call when there is a DOT (.) at the end of url当 url 末尾有一个 DOT (.) 时,Asp.Net MVC 路由操作方法不会调用
【发布时间】:2015-02-06 09:48:29
【问题描述】:

配置路线:

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 参数中,调用都应该在控制器的操作方法中。

提前致谢!

【问题讨论】:

  • 在该路由之前定义的任何其他可能会干扰的路由?
  • 没有@DanielJ.G.,只定义了2条路线。这是第一个,然后是默认的。
  • 感觉你的问题和描述有冲突。
  • 感谢@dotnetstep,标题已编辑。
  • 应该可以正常工作。刚刚尝试过,一切都在这里工作。你有一个模拟问题的测试项目?

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


【解决方案1】:

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

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2016-12-09
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 2012-08-04
  • 2012-12-13
  • 1970-01-01
  • 2016-03-27
相关资源
最近更新 更多