1

我正在尝试通过使用 asp.net 路由在 asp.net 网络表单中实现无扩展名 url。

  routes.Add("MyRouting", new Route("{PagePath}",
 new MyRouteHandler("~/Default.aspx")));

通过执行此无扩展 URL 可以正常工作,但在少数情况下,路由路径实际上作为真实的物理路径存在。

EG:localhost/Services 抛出 404 异常,因为根目录中有一个名为 Services 的真实文件夹。

如何跳过目录路由?

谢谢

4

1 回答 1

1

以下代码可能是您更密切地控制传入的 URL 所需的答案。

public static void RegisterRoutes(RouteCollection routes) {

    // example: ignore routes with this file extension and with any extra text afterwards
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    ...

    // example: new route to modify an URL and remove the .aspx extension
    routes.MapRoute(
        "UrlManagerRoute",
        "{*url}",
        new { controller = "MyController", action = "MyAction" },
        new { url = @".*\.aspx(/.*)?" }
    );
    ...
}
于 2012-12-19T08:22:37.717 回答