使用ExtensionLessHandler处理aspx页面

本文关键字:页面 aspx 处理 ExtensionLessHandler 使用 | 更新日期: 2023-09-27 18:03:00

我有一个mvc应用程序,我需要重定向旧的url到一个新的格式。

这些旧的url用这种格式表示:"/busca/term/0/0/187236/0。(注意参数计数可能会有所不同),我需要将其重定向到"/term"。当我尝试处理RouteConfig中的重定向时,它不会通过ExtensionlessUrlHandler,而是通过StaticFile处理程序,这会导致重定向无法正确处理。

我不能禁用StaticFile处理程序,因为我需要它的样式表和脚本。

我已经尝试了路由中的catchall参数,但它不起作用。我还试图启用StaticFile处理程序只是css和js文件,并启用ExtensionlessUrlHandler的aspx文件,但它也不起作用。

我只尝试了这条路由,但是,它不起作用:

routes.MapRoute(
   "Default",
   "{*path}",
   new {controller = "Home", action = "Index"});

有人知道怎么做吗?

使用ExtensionLessHandler处理aspx页面

听起来您需要的是从UrlRoutingModule中删除managedHandler先决条件。

<system.webServer>     
  <modules>     
    <remove name="UrlRoutingModule-4.0" />     
    <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />     
  </modules>     
</system.webServer>

这样,带扩展名的url将通过MVC路由运行,而不是直接到静态文件处理程序。

如果做不到这一点,请确保你的路由配置正确。