URL作为检索页面内容的ID

时间:2013-10-26 03:49:13

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

我在Web开发中使用旧技术有很长的经验,比如ASP类,我以前在很久以前开发过一个新闻网站。现在,我想使用更高级的技术升级它(我有很强的背景来重新学习PHP和ASP.Net)。 我的问题是: 我曾经通过ID从数据库中检索页面内容,如下所示:

mywebsite.com/NewsID.asp?ID=101

但是,我看到大多数网站现在使用不同的网址,例如今天的BBC,例如:

http://www.bbc.co.uk/news/world-latin-america-24680283

怎么做?!即不要让像我这样的BBC这样的网址不是我的经典之作

1 个答案:

答案 0 :(得分:2)

您可以使用路由,这是告诉您的Web服务器(或其他等效组件)解释的方法

http://www.bbc.co.uk/news/world-latin-america-24680283

通过正则表达式或类似工具来表示

Function name: news
Slug: world-latin-america-
Id: 24680283

然后调用,例如

news.php?id=24680283

public ActionResult News(long id, string slug)
{
   //
}

在LAMP系统中,可以使用Routing URLs in PHP中记录的mod_rewrite设置路线。

在ASP.Net MVC上下文routes are set中,通过RegisterRoutes Application_Start()中的Global.asax.cs调用[Route("news/{slug}-{id:int}")] public ActionResult News(int id) { ... }

在最新版本的MVC中,您还可以使用RouteAttribute使一切变得更简单:

{{1}}