我必须密集在对StackOverflow提出了几个问题之后,在掌握ASP.NET MVC提供的新路由引擎时,我仍然很失落.我认为我将问题缩小到一个非常简单的问题,如果解决了这个问题,可能会让我解决其余的路由问题.所以这里是:
您如何注册路由以支持用户个人资料的类似Twitter的URL?
www.twitter.com/username
假设还需要支持:
>默认{controller} / {action} / {id}路由.
>网址如下:
www.twitter.com/login
www.twitter.com/register
这可能吗?
解决方法
关于什么
routes.MapRoute( "Profiles","{userName}",new { controller = "Profiles",action = "ShowUser" } );
然后在ProfilesController中会有一个函数
public ActionResult ShowUser(string userName) { ...
在该功能中,如果没有找到具有指定userName的用户,则应重定向到默认的{controller} / {action} / {id}(这里只是{controller})路由.
如www.twitter.com/login之类的网址应该在之前注册.
routes.MapRoute( "Login","Login",new { controller = "Security",action = "Login" } );