我正在寻找类似这篇文章的内容:
How to hide controller name in Url?
只有没有任何ID。
服务器正在运行IIS 6,并且页面已经显示没有扩展名,因此它不是通配符问题。
我想点击http://website.com/action-name
我http://website.com/controller/action-name正在工作
我假设这只是一个简单的路由更改,我在某种程度上搞砸了。我当前的路由规则是:
routes.MapRoute(
"RouteName",
"{action}",
new { controller = "Home", action = "Index" }
);
答案 0 :(得分:7)
您的新路由规则是否高于默认路由规则{controller, action, id}
,以便它有机会匹配首先?
答案 1 :(得分:3)
问题是您的默认路由仍然可能存在,因此它首先匹配它并默认其预期的其余输入。根据您对controller/action
正在发挥作用的评论,我认为您没有删除它,或者它首先出现。你可以张贴整个RegisterRoutes
吗?
尝试制作您定义第一条路线的路线,它应该匹配您传递的几乎任何路线。
编辑:添加了RegisterRoutes
的外观:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
// This will match anything so if you have something very specific with hard coded
// values or more items that will need to be match add them here above but do not
// add defaulted values so it can still fall through to this.
routes.MapRoute(
"RouteName",
"{action}",
new { controller = "Home", action = "Index" });
}