1

行。我希望这是一个正确的问题和标题。

我完全是 asp.net 和 c# 的新手。几天来我一直在寻找答案,但一无所获。所以我认为这是问这个问题的最佳场所。

这是我当前的网址

http://localhost:7474/mywebsite/ProductDetails.aspx?Category=CSR&artID=36&alias=support-for-central-jaya-and-yogyakarta-earthquake-disaster

我想让搜索引擎友好的网址。我可以将以上网址设为

http://localhost:7474/mywebsite/ProductDetails/CSR/36-support-for-central-jaya-and-yogyakarta-earthquake-disaster

仅供参考,我没有使用 MVC。

4

3 回答 3

2

是的你可以。

查看RouteCollection.MapPageRoute了解详细信息,但大致需要以下代码:

routes.MapPageRoute(
    "ProductDetails",
    "/ProductDetails/{Category}/{artID}/{alias}",
    "~/ProductDetails.aspx");

但是 artId 和 alias 不能在同一段中。它们需要用斜杠 (/) 分隔。

另一个区别是您需要从 RouteData 而不是查询字符串中获取参数值,而不是:

Request.QueryString["Category"]

你做:

Page.RouteData.Values["Category"]

ps:我是从头开始做的,所以它可能无法编译

于 2013-04-04T03:41:12.963 回答
1

也许您可以尝试 URL 重写。这将是实现这一点的理想选择,根本不需要更改代码。并使用正则表达式从 url 中提取值以将值反弹到原始 aspx 页面。

http://www.iis.net/downloads/microsoft/url-rewrite

于 2013-04-04T04:50:08.183 回答
0

是的,我们可以使用 ASP.NET 路由功能创建搜索引擎友好的 URL。这篇博文有一个 URL 路由示例 - http://newapputil.blogspot.in/2013/12/aspnet-40-web-forms-url-routing.html

于 2014-08-28T10:37:14.413 回答