Asp.net mvc 4 asp.net mvc4中的路由配置

Asp.net mvc 4 asp.net mvc4中的路由配置,asp.net-mvc-4,routes,Asp.net Mvc 4,Routes,我想配置一个新的路由,比如 http://localhost:4889/Home/Search 为此,我尝试在RouteConfig.cs中进行如下配置: routes.MapRoute( name: "About", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "About",

我想配置一个新的路由,比如

http://localhost:4889/Home/Search
为此,我尝试在RouteConfig.cs中进行如下配置:

  routes.MapRoute(
                name: "About",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "About", id = UrlParameter.Optional }
            );
但它不起作用。每当我尝试点击该路径时,它都会重定向我的登录路径,我是否遗漏了什么?
请告诉我如何执行此操作。

您的路由定义与“默认”路由匹配,您可能尚未修改它,并且它是在“关于”路由之前定义的

或者你在什么地方漏掉了[授权]属性


我猜您想删除这个关于路由的内容,只需修改默认路由。

您的配置中还有其他路由吗?显示整个配置文件。您的actionmethods上有任何
[Authorization]
属性吗?@Jeroenvanevel:这是我的整个配置类`公共静态无效注册表路由(RouteCollection routes){routes.IgnoreRoute({resource}.axd/{*pathInfo}”);routes.MapRoute(名称:“Default”,url:{controller}/{action}/{id},默认值:new{controller=“Account”,action=“Login”,id=UrlParameter.Optional});}`……该路由与“About”路由的路径完全相同,并重定向到“Login”。什么不清楚?@Jeroenvanevel那么如何修改它?我想要两条路由。我必须做什么修改?@Jeroenvanevel现在我已经将该路由更改为“routes.MapRoute(name:“Search”,url:“Search/{id}”,默认值:new{controller=“Home”,action=“Seacrh”,id=urlparmeter.Optional});`当我点击
http://localhost:4889/Search/Hello
现在我已将该路由更改为,
routes.MapRoute(名称:“搜索”,url:“搜索/{id}”,默认值:new{controller=“Home”,action=“Seacrh”,id=UrlParameter.Optional})
当我点击“Hello”时,它仍然不起作用-它是您操作的名称?还是某种标识符?查看您的搜索操作定义。它接受什么参数?字符串id?可能是int id,这就是url无法映射到您的路由的原因