簡體   English   中英

ASP.NET MVC操作導致多個頁面

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM