我将为某些特定页面制作简短网址其余网站将保持不变。
所以我有以下内容
public class publiccontroller {
Public ActionResult GetPublicUrl(){
// This method generates a Random Characters and make url of that random character
// So suppose after this method i have a url for public like this : www.abc.de/HS56J
}
Public ActionResult ServePublic(string publickey){ // publickey will be = HS56J
}
}
那么这条路是什么,我不想改变现有的网站功能
提前致谢
答案 0 :(得分:0)
路由代码很简单:
routes.MapRoute(name: "SomeRoutingName",
url: "{publickey}",
defaults: new { controller = "public", action = "ServePublic" });
困难的部分是决定将其放入路由顺序的位置。我不知道你当前的路由是怎么样的,所以很难给出准确的答案。如果您只有默认路由,则应将上面的代码放在默认路由的前面。
请记住,这会导致某些网址不再进入主页,例如/ Home。如果您仍希望它们工作,则必须手动路由它们。或者,如果随机URL遵循某种模式(正则表达式),则应定义约束以避免错误路由:
routes.MapRoute(name: "SomeRoutingName",
url: "{publickey}",
defaults: new { controller = "public", action = "ServePublic" },
constraints: new { publickey= "" }); // Put regex for your random key