2014-10-29 57 views
0

這是我的默認路由:怎麼辦MVC 4路由帶參數,默認

routes.MapRoute(
    name: "Default", 
    url: "{controller}/{action}", 
    defaults: new { controller = "Home", action = "Index" } 
); 

我的控制器是「家」,我的看法是「指數」,它需要這些參數使用默認值:

public class HomeController : Controller 
{ 
    public ActionResult Index(string Queue = "ALL", string Summary = "false") 
    { 
     ... 
    } 
} 

我現在的URL看起來像這樣:

http://www.example.com/?Queue=ONE&Summary=true 

,但我想它被路由到這樣的事情:

http://www.example.com/ONE?Summary=true 

基本上路由它,所以我不必在URL中使用Queue關鍵字。

回答

0

修改你的路由定義如下圖所示,當我們使用完整的URL

routes.MapRoute(
    name: "Default", 
    url: "{controller}/{action}/{Queue}", 
    defaults: new { controller = "Home", action = "Index", Queue = UrlParameter.Optional } 
); 
+0

這將起作用。如果沒有在URL中明確指定控制器名稱和操作名稱(根據OP http://www.example.com/ONE?Summary=true指定),那麼它將不起作用,我是否缺少某些內容? – SBirthare 2014-10-29 11:17:44

+0

你是對的。它沒有像描述的那樣工作,但是我嘗試了這種改變 - > url:「{Queue}」(刪除{controller}/{action} /),它工作:-) – Espen 2014-10-29 11:25:00