【问题标题】:How to use personalized urls in asp.net mvc application如何在 asp.net mvc 应用程序中使用个性化 url
【发布时间】:2011-02-24 01:47:48
【问题描述】:
我正在开发一个网站,许多用户可以在其中创建自己的帐户并拥有个性化页面。我希望为他们提供一个类似 twitter 的 url 来访问他们的页面,例如 www.mysite.com/smith 或 www.mysite.com/john 。我正在使用 asp.net mvc 1.0。我知道我可以将路由添加到 global.asax 文件,但我无法弄清楚如何添加适用于此类 url 的路由。
请提供一些帮助/建议。谢谢。
【问题讨论】:
标签:
asp.net
asp.net-mvc
friendly-url
【解决方案1】:
就我而言,我会使用以下内容,放在所有其他路线之后,但要笼统地说:
routes.MapRoute(
"PrettyProfile",
"{username}",
new { controller = "Profile", action = "Index" }
);
正如 Anton 所说,您必须限制您的用户 ID,以免与您的其他路线发生冲突。
【解决方案2】:
好吧,您可以随时将其添加为最后一条路线:
routes.MapRoute(
"Default",
"{profile}",
new { controller = "Profile", action = "Index" }
);
但这会使您的应用程序更加繁琐。具体来说,您必须检查用户名,以免它们与您的其他路由冲突(例如 /info、'/admin' 等)。
我建议将个性化页面更深一层:
routes.MapRoute(
"Default",
"profile/{username}",
new { controller = "Profile", action = "Index" }
);