Asp.net-Mvc
單個控制器的 MVC 多個視圖
是否可以在 MVC 中使用單個控制器“ListController”執行以下操作來處理以下頁面…
www.example.com/List/Cars/ForSale/{id} 可選
www.example.com/List/Cars/ForRent/{id} 可選
www.example.com/List/Boats/ForSale/{id} 可選
如果沒有,除了將 CarsController 和 BoatsController 分開之外,還有什麼辦法可以繞過它?他們將使用相同的邏輯,只是希望 URL 不同。
你絕對可以做到這一點。使用路由很簡單。您可以將不同的 url 路由到控制器中的不同操作。
以下是定義上述一些 url 的範例:
routes.MapRoute("CarSale" "/List/Cars/ForSale/{id}", new { controller = "list", action = "carsale", id = UrlParameter.Optional } ); routes.MapRoute("ListSearch" "/List/search", new { controller = "list", action = "search"} ); routes.MapRoute("BoatSale" "/List/Boats/ForSale/{id}", new { controller = "list", action = "boatsale", id = UrlParameter.Optional } );然後在您的控制器中,您將為每個控制器提供操作方法:
public ListController { // ... other stuff public ActionResult CarSale(int? id) { // do stuff return View("CarView"); } public ActionResult BoatSale(int? id) { // do stuff return View("BoatView"); } // ... other stuff }