Asp.net mvc路线为短网址

时间:2014-03-18 07:58:51

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-routing

我将为某些特定页面制作简短网址其余网站将保持不变。

所以我有以下内容

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

  }
 }

那么这条路是什么,我不想改变现有的网站功能

提前致谢

1 个答案:

答案 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