如何在 asp.net mvc 应用程序中使用个性化 url

Posted

技术标签:

【中文标题】如何在 asp.net mvc 应用程序中使用个性化 url【英文标题】:How to use personalized urls in asp.net mvc application 【发布时间】:2011-02-24 01:47:48 【问题描述】:

我正在开发一个网站,许多用户可以在其中创建自己的帐户并拥有个性化页面。我希望为他们提供一个类似 twitter 的 url 来访问他们的页面,例如 www.mysite.com/smith 或 www.mysite.com/john 。我正在使用 asp.net mvc 1.0。我知道我可以将路由添加到 global.asax 文件,但我无法弄清楚如何添加适用于此类 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" 
);

【讨论】:

以上是关于如何在 asp.net mvc 应用程序中使用个性化 url的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ASP.NET MVC 中使用通用处理程序 (ASHX)?

如何在我的 ASP.NET MVC 应用程序中使用 ACE?

ASP.NET Core Web 应用程序系列- 在ASP.NET Core中使用Autofac替换自带DI进行批量依赖注入(MVC当中应用)

如何在 ASP.NET MVC 应用程序中管理和部署架构(使用 NHibernate)

使用命令行如何在 ASP.NET 中首先从 DB 搭建脚手架 - 而不是 ASP.NET Core MVC?

如何在 ASP.NET Core MVC 中使用依赖注入设计存储库模式?