這是我的第一個ASP MVC項目,所以我不知道如何做到這一點。如何在ASP中路由此MVC
我有一個名爲Admin的部分,它有一個管理控制器。我使用這只是一個索引頁面。
在管理部分,有不同的部分。比方說,公司和行當
我要處理那些在自己CompanyController和LineOfBusinessController
一切我想要的路線與聯繫,雖然即前綴。管理員/公司,管理/企業/添加
我已經是這個
routes.MapRoute(
name: "Admin",
url: "Admin/{controller}/{action}/{id}",
defaults: new { controller = "Admin", action = "Index", id = UrlParameter.Optional }
);
的問題是,現在我所有的路線選擇這一項在默認情況下,意在默認路徑之前添加路由實現這個一切都變成管理員/科即管理員/首頁等.....
我試過使用Html.RouteLink而不是ActionLink和URL的格式正確,但是當我去管理/公司它找不到它假設公司在AdminController
如何正確地路由此?
編輯
這裏是我的路線,然後我的鏈接
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
routes.MapRoute(
name: "Admin",
url: "Admin/{controller}/{action}/{id}",
defaults: new { controller = "Admin", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
鏈接
<li>@Html.ActionLink("Home", "Index", new { controller = "Home" }, ViewBag.SelectedNav == "Home" ? new { @class = "active" } : null)</li>
鏈路結束/管理/主頁
UPDATE
在這裏沒有標記答案,因爲我最終探索並最終使用了Areas。這是在一個答案中提出的,但其餘的答案是不正確的,所以我不想誤導任何人。感謝區域的建議,但是
我確實已經這樣做了,但是其他路由選擇了Admin路由而不是通用路由...我認爲這只是以這種方式工作,但它不是 – Dexterity 2012-08-17 14:25:39
你能顯示一個錯誤的鏈接 – Shyju 2012-08-17 14:26:54
你有那個鏈接嗎?放置在一些視圖屬於你的管理區域? – Shyju 2012-08-17 14:28:52