asp.net中网站的文本URL

时间:2011-03-22 09:16:03

标签: asp.net url-rewriting

我正在asp.net开发我的博客网站。 我正在sql server 2005数据库中保存我的博客文章。

我在我的数据库中存储这样

  • PostId INT IDENTITY
  • PostText
  • PostAuthor
  • PostedDate
  • IsActive

因此,在用户单击标签/链接时的代码端。它就是这样的 http://www.mysite.com/readBlog.aspx?Id=2

在readBlog.aspx页面上,我正在读取URL并从数据库中获取数据。但这是不专业的。我想要这样的网址

Scott Gu post

我怎样才能以更简单的方式实现它?

修改

只是当我想分享我的网站的网址时,我可以这样做

http://www.mysite.com/readBlog/How-to-install-visual-studio

2 个答案:

答案 0 :(得分:1)

您需要查看网址重写。

也许请看一下关于这个主题的Scott Gu Post

答案 1 :(得分:1)

查看ASP.NET Routing

只需在Global.asax注册一条路线:

protected void Application_Start(object sender, EventArgs e)
{
    RegisterRoutes(RouteTable.Routes);
}

public static void RegisterRoutes(RouteCollection routes)
{
    routes.MapPageRoute("readblog",
        "readblog/{id}/{title}",
        "~/readBlog.aspx");
}

然后可以使用例如:

来访问它
var path = RouteTable.Routes.GetVirtualPath(
    null, 
    "readblog", 
    new RouteValueDictionary {{ "id", blogId }, { "title", URLFriendly(title) }}
).VirtualPath;

其中URLFriendly生成一个URL友好版本的标题(一个很好的例子可以从Jeff Atwood的answer中获取)。这可能会产生以下网址:

/readBlog/2/how-to-install-visual-studio/readBlog/3/something-else