在 Global.asax.cs
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Menu", PageName="Index" } // Parameter defaults
);
routes.MapRoute(
"NewRoute", // Route name
"{controller}/{action}/{PageName}", // URL with parameters
new { controller = "Home", action = "Menu", PageName = UrlParameter.Optional } // Parameter defaults
);
我希望此参数仅在第一个主页加载PageName
时为“ ”。Index
在菜单链接单击之后,我需要传输与PageName
链接对应的参数值,而不是值“索引”。因此我写了一个新的 MapRoute,其中 PageName 是可选的,而不是“索引”。
所以在我的_Layout.cshtml
foreach(...)
{
@Html.ActionLink(item.Title, "Menu", "Home", new { PageName = item.PageName, role = "Admin" }, null)
}
目前对于所有链接单击,仅采用参数值“索引”,这是无意的。我希望这个'索引'是'home'或'aboutUS'或''......取决于用户点击的链接。
经过一番搜索,我发现 RouteLink 可以更改默认路由...
@Html.RouteLink(item.Title, "NewRoute", new { PageName = item.PageName })
实际上,我需要为 PageName 指定一个默认值,并且它应该在链接点击时更改。
请告诉我 routelink 是否是此问题的解决方案。