4

单击后,我页面上的链接将重定向到:

http://www.abc.com/document.aspx?sid=42&rid=1&mid=1

我想在地址栏中显示为:

http://www.abc.com/models/childfirst/inbrief

在哪里

  • models成为rid
  • childfirst成为sid
  • inbried成为mid

我怎样才能做到这一点?

4

4 回答 4

1

根据您的示例 URL,我假设您使用的是 ASP.NET Web 窗体。如果正确,我建议您检查URL 重写URL 友好配置。

于 2012-12-14T15:57:11.577 回答
0

达斯汀莱恩,我已经尝试了您提供的链接并尝试了这个,但它一直重定向到同一页面,

<rewriter>
<rewrite url="/models/(.+)" to="/document.aspx?sid=$1&amp;rid=$2&amp;mid=$3" />
<rewrite url="/implementation/(.+)" to="/document.aspx?sid=$1&amp;rid=$2&amp;mid=$3" />
<rewrite url="/outcomes/(.+)" to="/document.aspx?sid=$1&amp;rid=$2&amp;mid=$3" />
<rewrite url="/publications/(.+)" to="/document.aspx?rid=$1&amp;sid=$2&amp;mid=$3" />
<rewrite url="/help/(.+)" to="/document.aspx?rid=$1&amp;sid=$2&amp;mid=$3" />
<rewrite url="/aboutus/(.+)" to="/document.aspx?rid=$1&amp;sid=$2&amp;mid=$3" />
<rewrite url="/review/(.+)" to="/document.aspx?rid=$1&amp;sid=$2&amp;mid=$3" />
</rewriter>

我认为它不是 $1,$2,$3 的值,因为在我的目标 url 中它就像 /document.aspx?sid=42&rid=1&mid=1 但是当我输入 url 时这是 /models/childfirst/inbrief。

于 2012-12-14T18:35:00.160 回答
0

路由表:

http://msdn.microsoft.com/en-us/library/cc668201%28v=vs.100%29.aspx

您还可以使用路由表,

全球.asax

RegisterRoutes(RouteTable.Routes); 在 application_onstart

然后创建所需的路线:

routes.MapPageRoute("name", "section/{category}", "~/section/index.aspx");

那么你可以使用:

_value = Page.RouteData.Values["category"] 作为字符串;

获取每个部分的数据。

于 2012-12-14T16:17:45.850 回答
0

我过去曾为 .NET 3.5 使用过 urlrewriter,它的效果非常好。

*链接已删除,因为它不再是工具。

于 2012-12-14T16:04:59.350 回答