[英]adding custom view name in asp.net mvc4
我正在基於商務推廣和銷售商店的.net mvc4中構建應用程序。
此Web應用程序上的用戶將能夠使用產品並訪問他/她的個人業務頁面,該頁面可以在將來進行推廣。
因此,我添加了一個控制器Mypanel
以及用戶個人或專業業務頁面_Mypanel
。
現在,對該頁面的URL訪問是Bizcopter.com/Mypanel/_Mypanel
我想要自定義用戶定義的頁面名稱-
即如果一個企業的名字是-圖書城然后我想用的名字此相同的控制器添加視圖BookStore
,所以個人業務的網頁的網址會是─
Bizcopter.com/Mypanel/BookStore/
,此業務所有者可以使用此URL推廣其業務頁面。
讓我知道這些是否可行-
我不知道如何實現它,所以沒有任何嘗試的代碼。
網站網址-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/
接下來到了你的MyAction
在MyPanel 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.