2

需要帮忙,

假设我有一个网站:http://mysite/test.aspx

我传递了一个这样的查询字符串:http://mysite/test.aspx?id=1234

如何像这样更改地址栏中的 url:http://mysite/1234 以及如何获取 的值1234?我还能用Request.QueryString["id"]吗?

我正在使用 C# asp.net。

非常感谢你们!

4

2 回答 2

0

只需使用 Request.QueryString["id"] 并且如果您想更改您的 urlhttp://mysite/test.aspx?id=1234http://mysite/1234执行以下操作:

如果您使用的是 ASP .NET 4,请执行以下操作:

routes.MapPageRoute("",
    "mysite/1234",
    "~/mysite/test.aspx?id=1234");

如果您使用的是 ASP .NET 3.5 或更低版本,请尝试执行以下操作:

Browser.Url = new System.Uri("http://mysite/1234", System.UriKind.Absolute);
于 2013-07-21T05:21:31.267 回答
0

您需要的称为 URL 重写。根据您的应用程序和 URL 的复杂性,有多种方法可以做到这一点。

几年前我从事 URL 重写工作。我们有一个复杂的系统,其中包含更复杂的查询字符串值。

我使用Helicons ISAPI引擎进行重写。提供付费和免费版本。如果您的应用程序需要它,请查看它。不过,您将需要编写大量的 RegEx。但是,总体而言,令人惊叹的工具。

如果您的要求很简单(即重写几页),您可以使用免费库,例如urlrewriter,如果您想一次性重写多个页面,它可能会帮助您并使您的生活更轻松。

最后,重写 URL 的非常简单的方法:阅读Scott Gu的本教程,您将了解您需要做什么:

http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx

如果您希望在单击带有查询字符串值的超链接时自行生成这些漂亮的 URL,那么您肯定必须在 IIS 级别工作(哪些 URL 重写库将为您完成)。

我本可以发布一些示例代码来做到这一点,但我认为Scott Gu提供的上述工具和教程将帮助您以更好的方式了解您需要做什么。

于 2013-07-21T05:22:45.783 回答