仅使用控制器名称作为路由

Use just Controller name as route

我想通过 URL 访问我的 NewsList 路线:http://domain.com/news

我有如下三个路线:

routes.MapRoute(
    name: "NewsList",
    url: "News",
    defaults: new { controller = "News", action = "List" }
);

routes.MapRoute(
    name: "NewsDetail",
    url: "{controller}/{action}/{title}/{id}",
    defaults: new { controller = "News", action = "Details", title = "", id = 0 }
);

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

我可以毫无问题地使用 DefaultNewsDetail 路由,但是 NewsList 路由无法通过我在下面提供的当前配置的 URL 访问。当我尝试访问 NewsList 路由时,我需要使用 URL: http://domain.com/news/list.

编辑:如果我使用 http://domain.com/news,我会在屏幕上看到 HTTP Error 403.14 - Forbidden 错误。

在这种情况下是否可以忽略该操作?

确保您的项目中没有 "news" 目录。如果有,那将优先,您将在尝试列出目录时得到 403。