使用ASP.NET MVC的每个用户的个性化URL

时间:2010-07-20 20:53:00

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

我想创建一个网站,其中每个用户都有自己的主页,其中网址的格式为site\username。如何使用ASP.NET MVC路由系统实现这一目标?

我正在计划以下网址布局:

  

mysite / - >主页
  mysite / account / register - >帐户注册页面
  mysite / user1 - > user1主页
  mysite / user2 - > user2主页

以上网址符合以下controller\action模式:

  

mysite / - >家用/指数
  mysite / account / register - >帐户/注册
  mysite / user1 - >用户/索引
  mysite / user2 - >用户/索引

如何安排我的RegisterRoutes来解决这个问题?

2 个答案:

答案 0 :(得分:2)

您可能需要使用mysite/user1之类的路线,而不是使用像mysite/users/user1这样的路线。然后将其映射到user/index操作,并将最后一部分(用户名)作为参数传递给该方法。

使用mysite/{username}的问题是,如果某人决定使用account或类似的用户名?它可能会使他们的页面无法访问。

答案 1 :(得分:1)

尝试

routes.MapRoute(
    "User",
    "{username}",
    new { controller ="User", action="Index" }
);

编辑:那些担心用户通过将用户名设置为“帐户”或类似内容而恶意(或意外)违反此格式的用户应该看this link