我有我的控制器的工作方式,此時URL出現Home/Collections/Collection?id=1
這是我的目標功能。不過,我現在想讓網址更友好。例如,我希望它變成Home/Collections/Summer
。MVC控制器
我在CollectionsController
下面的代碼:
public ActionResult Index()
{
return View(Helper.Helper.ResolvePath("Collections"));
}
//
// GET: /Collections/Collection?id=1
public ActionResult Collection(int id)
{
var collectionModel = ds.GetCollection(id);
return View(Helper.Helper.ResolvePath("Collection"), collectionModel);
}
需要什麼改變讓我想要的結果?沒有單獨的ActionResult
爲每個集合(因爲它永遠不會是一個固定的數字)?
這裏是我的Global.asax
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
張貼您的路線收集。您很可能需要添加或修改您的路由,以便在控制器的操作方法中接受字符串而不是int參數。 – asawyer 2012-03-06 14:21:58
@asawyer編輯 – ediblecode 2012-03-06 14:27:15
@danRhul「夏季」與「1」的ID值有什麼關係?是「夏季」收藏品的名稱嗎?您是否希望此路線僅適用於這一個控制器操作?通過使用自定義路由約束,您可以做到這一點,但在我給出示例代碼以說明如何做到這一點之前,我需要您澄清一下。 – 2012-03-06 14:34:31