2011-08-24 60 views
0

的路線:簡單Html.Actionlink問題(MVC3)

  routes.MapRoute(
      "Items", // Route name 
      "{controller}/{action}/{id}", // URL with parameters 
      new {controller = "Item", action = "Index", id = UrlParameter.Optional} // Parameter defaults 
      ); 

爲HtmlHelper:

@Html.ActionLink("Chairs", "List", "Item", new {id="Chairs"}, null) 

它生成的鏈接:

http://localhost:57899/Item/List?id=Chairs 

我想什麼它顯示:

http://localhost:57899/Item/List/Chairs 

如何做到這一點?

+0

'ItemController'的'List'動作有什麼特徵? –

+0

@David Signature?'public ActionResult List(string id) { return View(_repository.GetItems(id)); }' –

回答

0

而不是使用ActionLink如果您嘗試以下操作會發生什麼?

@Html.RouteLink("Items", new { id = "Chairs" }) 
0

你叫Html.RouteLink(不操作鏈接),並根據您的通用映射額外的路線是這樣的:

routes.MapRoute(
     "ChairsRoute", // Route name 
     "Item/List/{id}", // URL with parameters 
     new {controller = "Item", action = "Index", id = UrlParameter.Optional} // Parameter defaults 
     ); 

,當你調用RouteLink,你會簡單地傳遞「ChairsRoute」名稱