簡體   English   中英

在asp.net mvc4中添加自定義視圖名稱

[英]adding custom view name in asp.net mvc4

我正在基於商務推廣和銷售商店的.net mvc4中構建應用程序。

此Web應用程序上的用戶將能夠使用產品並訪問他/她的個人業務頁面,該頁面可以在將來進行推廣。

因此,我添加了一個控制器Mypanel以及用戶個人或專業業務頁面_Mypanel

現在,對該頁面的URL訪問是Bizcopter.com/Mypanel/_Mypanel

我想要自定義用戶定義的頁面名稱-

即如果一個企業的名字是-圖書城然后我想用的名字此相同的控制器添加視圖BookStore ,所以個人業務的網頁的網址會是─

Bizcopter.com/Mypanel/BookStore/ ,此業務所有者可以使用此URL推廣其業務頁面。

讓我知道這些是否可行-

  1. 替換用戶選擇的視圖名稱
  2. 在同一控制器中從客戶端添加視圖

我不知道如何實現它,所以沒有任何嘗試的代碼。

網站網址-http : //bizcopter.com/Mypanel/_Mypanel

您無需為每個業務使用單獨的視圖和控制器操作。

我將創建一個控制器並查看MyPanel 控制器采用名為businessName之類的參數,該參數將加載與該參數有關的數據。

默認情況下,您在AppStart / RouteConfig.cs中將具有一條如下所示的路由:

routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }

默認的URL結構可能類似於: http://localhost:{PortNumber}/{Controller}/{Action}

我們可以在其中歸因於以下內容:

Controller = Home

Action = Index

現在,如果您想要與您擁有的東西類似的東西,則需要以下類似的東西:

http://testing.com/Fruits/Apples

Controller = Fruits

Action = Apples

默認情況下,URL模式將匹配具有正確段數的所有URL,在這種情況下為{controller} / {action}

總體而言,您只需要MyPanel控制器,以及一個使用string參數的控制器,該參數會將正確的Object / Model加載到視圖中。

來源:Pro ASP.NET MVC 4-Adam Freeman

正如其他人所說,您可以添加一條新路線,請考慮以下代碼:

routes.MapRoute(
            name: "MyCustomRoute",
            url: "MyPanel/{name}"
            defaults: new  { controller = "MyPanel", action = "MyAction", name="" }
        );

在此途徑中,如果用戶鍵入以下URL:

Bizcopter.com/Mypanel/

接下來到了你的MyActionMyPanel Controller通過default.Actually它總是會去MyAction ,並在您的MyAction,你必須采取的name參數和重定向用戶到這樣的相關動作:

public ActionResult MyAction() 
{
    var name = RouteDate.Values["name"];

    // check the name and redirect user to another action if it necessary

    if(name == "BookStore") return RedirectToAction("BookStore","Mypanel");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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