[英]ASP.NET MVC actionresult multiple pages
我目前有一個Products控制器,每個產品都有一個硬編碼的“ Product”操作結果(因為產品是固定的,並且不會更改):
site.com/Products/Product
site.com/nl/Products/Product
這樣,每個產品都包含一個包含所有信息的頁面。 現在,我想為每個產品創建多個頁面以突出顯示某些功能或選項,而不是顯示單個產品頁面。
例如:
site.com/nl/Products/Product/Detail1
site.com/nl/Products/Product/Option2
site.com/nl/Products/Product/Option16
做這個的最好方式是什么?
我應該創建例如ProductDetail1操作和ProductOption2操作嗎?
您可以在一個操作中響應不同的視圖
public class ProductsController : Controller
{
public ActionResult Product(int id, string view,)
{
Product prod = Context.GetProduct(id);
if(!string.IsNullOrEmpty(view))
{
switch(view.ToLower()){
case "detail": return View("Detail", prod.Detail);
case "option1": return View("Option1", prod.GetOption(1));
case "option2": return View("Option2", prod.GetOption(2));
}
}
return View();
}
}
好吧,您有自己的控制器方法:
public class ProductsController : Controller
{
public ActionResult Product(string option)
{
//here your logic
return View();
}
}
您可以更改默認路由:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{option}",
defaults: new { controller = "Home", action = "Index", option = UrlParameter.Optional }
);
現在,如果您在控制器中調用site.com/nl/Products/Product/Detail1
option
類的url,則對象的值將為Detail1
。 使用此參數,您可以做任何您想做的事。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.