English 中文(简体)
类似TinyURL的ASP.NET MVC路由?
原标题:
  • 时间:2009-04-07 20:17:47
  •  标签:

我正试图在ASP.NET MVC中编写一个类似TinyURL的克隆,作为第一个习惯该框架的项目。

URL路由对我来说仍然有点困惑,尤其是当我偏离控制器/action/id时。

你们中的任何一个ASP.NET MVC忍者能帮助我设置一个类似于TinyURL.com处理路由的简单URL路由吗?

例如:

网址:www.tinyurl.com/

重定向到索引页。因此,如果没有传递任何参数,那么只需调用Index()视图。

然而,如果你传入了你的tinyurl散列,我需要调用重定向()操作。

网址:网址:www.tinyurl.com/fbc13

那么,我该如何设置这个自定义路线呢?

 routes.MapRoute(  
                "Default",                              // Route name  
                "{tinyhash}",                           // URL with parameters  
                new { controller = "Link", action = "ReDirect", tinyhash = "" }  // Parameter defaults  
            );  

这是不对的,因为如果你只是访问url中没有哈希的页面,我会默认为ReDirect[(]操作,而我希望它调用Index[(]方法。

关于如何模仿TinyURL之类的基本路线的建议?

最佳回答

你走在了正确的轨道上。创建一个空路由,您将不会被重定向。

routes.MapRoute(  
    "Default",
    "",
    new { controller = "Home", action = "Index" }
);

并将默认值更改为

routes.MapRoute(  
    "Redirect",
    "{tinyhash}", 
    new { controller = "Link", action = "ReDirect", tinyhash = "" } 
);

或者,您可以让控制器检查tinyhash值,如果它为空,则显示不同的视图。(这太离谱了)

问题回答

暂无回答




相关问题
热门标签