使用 ASP.NET MVC 为每个用户提供个性化 URL
我想创建一个网站,其中每个用户都有自己的主页,并且 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可能需要使用像
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 likemysite/users/user1
. Then map it to theuser/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 useaccount
or something similar as their username? It would likely make their page unviewable.尝试
编辑:那些担心用户通过将用户名设置为“帐户”或类似内容来恶意(或意外)破坏此格式的人应该查看 此链接。
Try
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.