C# 如何在不使用url重写的情况下应用自定义url?

C# 如何在不使用url重写的情况下应用自定义url?,c#,asp.net,C#,Asp.net,我正在asp.net中创建一个基于从MSSQL DB获取内容的动态网站。我想做的是:everycontent基于contentId标题有自己的链接/url。我该怎么做 例如: 表有: 身份证号码:1 标题:Mytitle 描述:这是描述 扩展名:.html 网址: 现在,我需要在datagrid中显示所有结果,标题链接如下: Title:mytitle=>现在只要有人点击它,它就会以“/1-mytitle.html”的形式解析 所以,创建url的公式是:ID标题扩展 例如,上面的示例将生成为:

我正在asp.net中创建一个基于从MSSQL DB获取内容的动态网站。我想做的是:everycontent基于contentId标题有自己的链接/url。我该怎么做

例如: 表有: 身份证号码:1 标题:Mytitle 描述:这是描述 扩展名:.html 网址:

现在,我需要在datagrid中显示所有结果,标题链接如下:

Title:mytitle=>现在只要有人点击它,它就会以“/1-mytitle.html”的形式解析

所以,创建url的公式是:ID标题扩展 例如,上面的示例将生成为:

<a href="/1-mytitle.html">MyTitle</a>

这些任务可以通过创建自定义HttpHandler来实现。有关更多详细信息,请参阅MSDN:


签出路由,它是ASP.NET 3.5 SP 1或更高版本的一部分。它应该能够满足你的需要


如果您在2.0上遇到困难,您可以使用自定义映射的http处理程序工厂来伪造路由的入站部分,但我想不出升级到3.5会更具成本效益的情况。

您所说的“不使用url重写”是什么意思。您特别要求重新编写url。这个问题太荒谬了。@Noon-首先谢谢你的话。由于这是一个开放的论坛,有许多新手成员希望更好地学习/了解so,如果你在该领域非常出色,请不要使用“荒谬”这类词语。无论如何,我不想应用url重写,我的意思是让我的动态url更有趣,我只想使用表中提供的链接。非常感谢您的帮助。但是,根据要求有点不同。只有一种方法可以处理不同的扩展。但在我们的例子中,也有一个定制的url。我们还需要在物理上不存在的虚拟页面上访问这些信息。非常感谢您的留言。您可以通过实现新的IHttpHandlerFactory来检查请求的url。可以使用context.Request对象获取此信息。此外,这种方法意味着您有几个模板化页面,其编译版本在GetHandler方法中返回。最后,您可以将页面的标识符保存到context.Items对象中,并在页面的Load事件中获取它。您将在同一篇MSDN文章中找到一个如何实现这一点的示例。这就是我想知道的。你能提供相关的参考文章/链接吗?