使用MVC URL路由覆盖目录列表

pra*_*bug 8 asp.net-mvc webforms asp.net-mvc-routing

最近,我部分转换了Asp.Net Web表单应用程序以使用MVC.我们仍然在Web表单(.aspx页面)中包含应用程序的一部分,并使用MVC路由来使用控制器等.我添加了一条MVC路线

routes.MapRoute("Users", "Users/{controller}/{action}/", new { controller = "Timesheet", action = "List" });
Run Code Online (Sandbox Code Playgroud)

有一个名为"Users"的文件夹,其中包含一些我们仍在使用的aspx页面.当我点击URL时,http://localhost/Users/我得到了"Users"文件夹内容的目录列表.显然,目录列表优先于MVC URL路由,这可能会通过修改IIS7服务器设置来覆盖.

我怎么能通过代码或web.config更改覆盖此行为?

参考文献:

http://forums.asp.net/t/1251156.aspx/1

http://learn.iis.net/page.aspx/121/iis-7-and-above-modules-overview/

Sun*_*Raj 0

使用这个忽略路由:

routes.IgnoreRoute("{WebPage}.aspx/{*pathInfo}");
Run Code Online (Sandbox Code Playgroud)

列出 RegisterRoutes 方法

public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");                         
            routes.IgnoreRoute("{WebPage}.aspx/{*pathInfo}");            

            //routes.MapPageRoute("users", "users", "~/admin/default.aspx");

            routes.MapRoute(
                "Default", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { controller = "home", action = "index", id = UrlParameter.Optional } // Parameter defaults
            );

        }
Run Code Online (Sandbox Code Playgroud)

这将从路由中排除扩展名为“.aspx”的所有页面。