2010-08-26 128 views
0

是否有任何可能创建maproute,它总是会使用一种方法,它不需要将它放在地址中?MapRoute(Asp.Net MVC 2.0 .NET 4.0)

我的意思是我有一个方法(索引)的控制器,它显示的项目取决于方法的参数。

public ActionResult Index(string TabName) 
    { 
     var tab = (from t in BlogDB.Tabs 
        where t.TabName == TabName 
        select t).SingleOrDefault(); 

     ViewData.Model =(Tab)tab; 
     return View(); 
    } 

什么,我想的是,我可以不显示的项目将地址“www.example.com/Tabs/TabName”“/首页/”选项卡和TABNAME之间。我试过了:

routes.MapRoute(
     "Tabs1", 
     "Tabs/{TabName}", 
     new { controller = "Tabs", action = "Index", TabName = UrlParameter.Optional } 
    ); 

但它不起作用。

回答

1

你还有默认路由吗?如果是,是否在此之前定义?

你的问题是,asp.net mvc试图找到Tabs控制器和Tabname操作。

将此路由放置在默认的{controller}/{action}路由前