【问题标题】:Asp.net mvc route for short url短 url 的 Asp.net mvc 路由
【发布时间】:2014-04-23 18:47:09
【问题描述】:

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

所以我有以下事情

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

  }
 }

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

提前致谢

【问题讨论】:

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


    【解决方案1】:

    路由代码很简单:

    routes.MapRoute(name: "SomeRoutingName",
                  url: "{publickey}",
                  defaults: new { controller = "public", action = "ServePublic" });
    

    困难的部分是决定将它放在您的路由顺序中的哪个位置。我不知道您当前的路线如何,因此很难给出准确的答案。如果你只有默认路由,那么你应该把上面的代码放在默认路由前面。

    请记住,这将导致某些 url 不再进入主页,例如 /Home。如果您仍然希望它们工作,则必须手动路由它们。或者如果随机 URL 遵循某种模式(正则表达式),您应该定义约束以避免错误路由:

    routes.MapRoute(name: "SomeRoutingName",
                  url: "{publickey}",
                  defaults: new { controller = "public", action = "ServePublic" },
                  constraints: new { publickey= "" }); // Put regex for your random key
    

    【讨论】:

      猜你喜欢
      • 2010-11-22
      • 2010-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多