2012-06-01 34 views
2

我想实现在ASP.net MVC 3我的自定义路线,但我得到这个错误:自定义路由没有在ASP.net MVC工作3

The resource cannot be found. 

Global.asax的

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

    routes.MapRoute(
     "mycontroller", // Route name 
     "{controller}/{name}", // URL with parameters 
     new { controller = "MyController", action = "Search" } // Parameter defaults 
    ); 

} 

MyController.cs

public class MyController : Controller 
{ 
    public ActionResult Search(string name) 
    { 
     return Content(name); 
    } 
} 
+0

@TGH是我没有看到更新以上 – user603007

+0

见我的答案,只需要升级到myController的我,甚至更好的改变名称更重要。您只需将您的控制器称为_ _并将约定称为控制器:_ Controller_ – Jupaol

回答

1

试试这个:

routes.MapRoute(
"mycontroller", // Route name 
"mycontroller/{name}", // URL with parameters 
new { controller = "My", action = "Search", } // Parameter defaults 
); 

将myController的不会被发现,因为你没有一个名为MyControllerController控制器。由于继承自Controller,约定将查找URL标记+“控制器”。

干杯。

+0

另外,请记住路由是贪婪的。看起来你不会遇到这种情况,但匹配的第一条路线将是执行的路线,而不一定是最具体的路线。所以先把你的*最具体*路线。祝你好运。 – MisterJames

+0

它的工作表示感谢! – user603007

+0

没问题,很高兴我能帮到你。干杯! – MisterJames

0

尝试将其更改为

routes.MapRoute(
"mycontroller", // Route name 
"{controller}/{name}", // URL with parameters 
new { controller = "My", action = "Search", } // Parameter defaults 
); 

请注册它在Global.asax文件