你可以使用MVC路由來創建這個URL。您的路由表通常位於您的AppStart> RouteConfig.cs類中。您可以使用路由表爲您的控制器中的操作創建URL映射。
假設我的產品是你的控制器,和鞋子,女士們,你要接受你可以這樣做的變量:
routes.MapRoute("MyProducts",
"MyProducts/{category}/{subcategory}/Page",
new { controller = "MyProducts", action = "Index" });
請注意,你的路線應該是最到最具體的順序,所以加此路線在默認路線上方。
當您導航到/我的產品/鞋/女裝/頁,它會映射到你的索引作用的結果在你的我的產品控制器,傳遞變量的類別和子類別,所以你的控制器看起來像
public class MyProducts : Controller
{
public ActionResult Index(string category, string subcategory)
{
//Do something with your variables here.
return View();
}
}
如果我的假設是錯誤的,你想要一個視圖返回只是針對URL,你的路線將是這樣的:
routes.MapRoute("MyProducts", "MyProducts/Shoes/Ladies/Page", new { controller = "MyProducts", action = "LadiesShoes" });
而且你的控制器:
public class MyProducts : Controller
{
public ActionResult LadiesShoes()
{
//Do something with your variables here.
return View();
}
}
如果您願意,可以放心地忽略URL上的最後一個「/ page」。
如果我沒有用上面的例子說明具體情況,請告訴我,我會延長我的回答。
UPDATE
你仍然可以把你的意見在一個文件夾結構,如果你想下的views文件夾 - 然後引用視圖文件位置控制器 - 在下面的例子中,將您稱爲視圖文件Index.cshtml在查看/鞋/女裝/文件夾:
public class MyProducts : Controller
{
public ActionResult LadiesShoes()
{
//Do something with your variables here.
return View("~/Views/Shoes/Ladies/Index.cshtml");
}
public ActionResult MensShoes()
{
//Do something with your variables here.
return View("~/Views/Shoes/Mens/Index.cshtml");
}
}
這個回答很好,並建議您需要進行自定義路由,以獲得我們認爲理所當然與HTML相同的URL結構 – MyDaftQuestions
這也意味着視圖我猜可以非常快速地變得非常大......當我們文件夾,它更容易組織! – MyDaftQuestions
@MyDaftQuestions,如果您想爲您的視圖文件複製文件夾結構,則可以覆蓋視圖的默認位置。我會更新我的答案 – Carl