2012-10-27 93 views
2

我被困在试图在Global.asax中创建另一条路由。MVC3路由问题

我正在使用MVC3为我的网站创建动态页面。当我输入这个URL /Home/GetPages /关于%20Us

它拉出正确的控制器方法并提取数据。

不过,我想它修改这个 /关于%20US

下面是我添加到全局文件的路径:

 routes.MapRoute(
      "Pages", // Route name 
      "{controller}/{action}/{PageName}", // URL with parameters 
      new { controller = "Home", action = "GetPages", PageName = UrlParameter.Optional } // Parameter defaults 
     ); 

任何帮助,将不胜感激。

回答

1

你靠得很近;您只需删除PageName的默认条目并更改URL模板以删除控制器和操作标识符。

routes.MapRoute(
    "Pages", // Route name 
    "{PageName}", // URL with parameters 
    new { controller = "Home", action = "GetPages" } // Parameter defaults 
); 

此外,确保这条线路后您的其他路线映射,否则会妨碍他们的工作(因为只是除了根任何URL将触发此航线)。

+0

这里是我的总路线。 routes.MapRoute( “Default”,//路由名称 “{controller}/{action}/{id}”,//带参数的网址 新{controller =“Home”,action =“Index”, id = UrlParameter.Optional} //参数默认值 ); routes.MapRoute( “页数”,//路线名称 “{}页面名称”,// URL与参数 新{控制器= “主页”,动作= “GETPAGES”} //参数默认 ); 但是,在尝试localhost/About%20Us后,我仍然收到404错误。思考? –

0

我实际上扭转了路线和工作。大多数页面将在根上动态显示,因此这应该可以正常工作。感谢您的帮助...