使用 ASP.NET MVC 为每个用户提供个性化 URL

发布于 2024-09-10 08:57:59 字数 494 浏览 7 评论 0原文

我想创建一个网站,其中每个用户都有自己的主页,并且 URL 的格式为 site\username。如何使用 ASP.NET MVC 路由系统来完成此任务?

我正在计划以下 URL 布局:

我的网站/ ->主页
我的网站/帐户/注册 ->帐户注册页面
我的网站/user1 ->用户1主页
我的网站/user2 -> user2主页

上面的 URL 将匹配以下 controller\action 模式:

我的网站/ ->首页/索引
我的网站/帐户/注册 ->帐号/注册
我的网站/user1 ->用户/索引
我的网站/user2 ->用户/索引

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

I'd like to create a site where each user has his own home page and where the URL is in the format site\username. How can I accomplish this with ASP.NET MVC routing system?

I'm planning the follow URL layout:

mysite/ -> home page
mysite/account/register -> account register page
mysite/user1 -> user1 home page
mysite/user2 -> user2 home page

The above URL would match the following controller\action pattern:

mysite/ -> home/index
mysite/account/register -> account/register
mysite/user1 -> user/index
mysite/user2 -> user/index

How can I arrange my RegisterRoutes to solve this problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

海螺姑娘 2024-09-17 08:57:59

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

使用 mysite/{username} 的问题是,如果有人决定使用 account 或类似用户名的内容怎么办?这可能会使他们的页面无法查看。

Rather than using a route like mysite/user1 you would probably need to use a route like mysite/users/user1. Then map it to the user/index action and have it pass the last part (user name) as a parameter to that method.

The problem with using mysite/{username} is what if someone decides to use account or something similar as their username? It would likely make their page unviewable.

肩上的翅膀 2024-09-17 08:57:59

尝试

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

编辑:那些担心用户通过将用户名设置为“帐户”或类似内容来恶意(或意外)破坏此格式的人应该查看 此链接

Try

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

Edit: Those worrying about users maliciously (or accidentally) breaking this format by making their username as "account" or something similar should look to this link.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文