我正在尝试将网址重写为仅隐藏我们的详细操作。
我们的mapRoute是:
routes.MapRoute(
name: "SubejctDetails",
url: "{controller}/{action}/{id}/{title}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional, title = "" },
namespaces: new string[] { "website.Controllers" }
);
答案 0 :(得分:1)
尝试这条路线:
routes.MapRoute(
name: "SubjectDetails",
url: "{controller}/{id}/{title}",
defaults: new { controller = "Home", action = "details", id = UrlParameter.Optional, title = "" },
namespaces: new string[] { "website.Controllers" }
);
它应该完成你想要的(将它置于“默认”路线之上)。
我担心路线引擎永远无法分辨出你想要更经典的/controller/action
路线。
为避免混淆路线,请考虑使用不同的范例:使用固定名称控制器或领先的slug。那么任何不包括领先slug的路线都将被忽略:
routes.MapRoute(
name: "SubjectDetails",
url: "subject/{id}/{title}",
defaults: new { controller = "subject", action = "details", id = UrlParameter.Optional, title = "" },
namespaces: new string[] { "website.Controllers" }
);
现在该路线仅适用于以“subject /”
开头的网址