0
我有一個用於管理功能的區域。我想我的網址看起來像這樣:ASP.NET MVC 4自定義路由
管理/ {控制器}/{塞} {ID}/{行動} (即管理/用戶/ getoutofmylab.1 /編輯) 管理/ {}控制器/ {動作} (即管理員/用戶,這只是用戶控制器的索引頁)
當我從我的應用程序的根目錄瀏覽到用戶控制器時,我得到admin/user。用戶控制器編輯操作的鏈接正確生成。但是,如果我通過該控制器中的任何其他操作鏈接到索引操作,則會生成如下所示的URL:admin/user/{slug}。{id},如果單擊它,將生成404找不到的錯誤。
這裏是我的AdminAreaRegisration:
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRouteLowercase(
"Admin_Applications",
"admin/{controller}/{slug}.{id}/{action}",
new { controller = "Application", action = "Index", id = UrlParameter.Optional, slug = "" },
new string[] { "Web.Portal.Areas.Admin.Controllers" }
);
context.MapRouteLowercase(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new string[] { "Web.Portal.Areas.Admin.Controllers" }
);
}
我怎樣才能達到預期的效果?
感謝
所以你想從一個控制器中的動作鏈接到單獨控制器中的動作? – Mark
這些都在同一個控制器中。只是當我處於「編輯」操作中時,例如,在_Layout頁面上的「索引」操作的鏈接使用slug生成,當它應該是/ admin/user時。 – getoutofmylaboratory
它似乎使用Html.RouteLink並指定操作工作,而不是使用Html.ActionLink:'@ Html.RouteLink(「List Applications」,「Admin_Default」,new {action =「Index」})'' – getoutofmylaboratory