2011-12-13 132 views
0

我刚开始使用MVC 3,并且想创建一个像'http:// server/news/9635/demo-news-title'这样的url,但我不知道如何才能地图路线。MVC 3 URL路由

routes.MapRoute(
       "news", 
       "{controller}/{id}/{title}", 
       new { controller = "news", action = "Index", id = UrlParameter.Optional, title = UrlParameter.Optional } 
       ); 

我试过了,但它似乎没有工作。我该怎么办?

感谢

+0

什么是 '不工作'?你是否得到例外?找到错误的控制器?你期望什么具体没有发生? – dougajmcdonald

+0

当我向浏览器写入'/ news/221/demo-title'时,出现“服务器错误/应用程序”错误。 mapRoute方法适用于我上面写的url吗? – mehmetserif

+0

你能告诉我们你的控制器动作吗? – frennky

回答

1

我认为您的路线是正确的,但您必须在默认路线之前放置您的路线。这是例子:

routes.MapRoute(
       "news", 
       "{controller}/{id}/{title}", 
       new { controller = "news", action = "Index", id = UrlParameter.Optional, title = UrlParameter.Optional } 
       ); 
routes.MapRoute(
       "Default", // Route name 
       "{controller}/{action}/{id}", // URL with parameters 
       new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
      ); 
2

您没有提供关于你的意思“不工作”的信息。 要检查您的路线是否是您可以使用的问题Phil Haacks's ASP.NET Routing Debugger

+0

以及我的事情,我解决了这个问题,我得到了2个maproutes,一个默认和一个新闻,所以我改变了他们的顺序,现在看来工作... – mehmetserif

0

这样来做:

routes.MapRoute(
      "news", 
      "news/{id}/{title}", 
      new { controller = "news", action = "Index", id = UrlParameter.Optional, title = UrlParameter.Optional } 
      );