仅使用控制器名称作为路由
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 }
);
我可以毫无问题地使用 Default
和 NewsDetail
路由,但是 NewsList
路由无法通过我在下面提供的当前配置的 URL 访问。当我尝试访问 NewsList
路由时,我需要使用 URL: http://domain.com/news/list
.
编辑:如果我使用 http://domain.com/news
,我会在屏幕上看到 HTTP Error 403.14 - Forbidden
错误。
在这种情况下是否可以忽略该操作?
确保您的项目中没有 "news" 目录。如果有,那将优先,您将在尝试列出目录时得到 403。
我想通过 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 }
);
我可以毫无问题地使用 Default
和 NewsDetail
路由,但是 NewsList
路由无法通过我在下面提供的当前配置的 URL 访问。当我尝试访问 NewsList
路由时,我需要使用 URL: http://domain.com/news/list
.
编辑:如果我使用 http://domain.com/news
,我会在屏幕上看到 HTTP Error 403.14 - Forbidden
错误。
在这种情况下是否可以忽略该操作?
确保您的项目中没有 "news" 目录。如果有,那将优先,您将在尝试列出目录时得到 403。