当用户点击Controller
中的Home
和url
页面时,我想要从About
移除Contact
ASP.NET MVC sample application
routes.MapRoute("Home", "{action}/{id}",
new { controller = "Home" });
。我尝试了这个,但它给了我404错误。
Route.Config
当我删除这一切时,一切都很完美
注意我想仅在Controller为Home时删除Controller名称。其他控制器应保持不变。
此外,我将代码保存在 routes.MapRoute("Home", "{action}/{id}",
new { controller = "Home" });
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
文件上方
{{1}}
必填结果
abc.com/Home/About 应显示为 abc.com/About
abc.com/Home/Contact 应显示为 abc.com/Contact
答案 0 :(得分:1)
您应该在global.asax中映射新路由(在默认路由之前添加它),例如:
routes.MapRoute("SpecificRouteforHomeController", "{action}/{id}", new {controller = "Home", action = "Index", id = UrlParameter.Optional});
// default route any defalt you want
routes.MapRoute("Default", "{controller}/{action}/{id}", new {controller = "Account", action = "Login", id = UrlParameter.Optional} );
答案 1 :(得分:-2)
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "DefaultControllerName", action = "Index", id = UrlParameter.Optional }
);
如果你将指定控制器名称,那么这将适用于该控制器名称。如果不是默认情况下,它将控制器名称作为 DefaultControllerName 。