2012-12-14 108 views
4

点击时,我的页面上的链接会重定向到:URL重写在.net 3.5

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

我怎样才能做到这一点的价值?

回答

1

根据您的示例URL,我假设您正在使用ASP.NET Web窗体。 如果这是正确的,我建议您检查URL RewritingURL Friendly配置。

0

我在.NET 3.5中使用过urlrewriter,它工作得很好。

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

+0

疯了,我删除了链接。它显然被原主人抛弃了。 –

+0

我明白了。谢谢。 –

0

路由表:

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

你也可以使用路由表,

的Global.asax

的RegisterRoutes(RouteTable.Routes);在application_onstart

然后创建的路由需要:

routes.MapPageRoute( “名称”, “节/ {类别}”, “〜/部分/的Index.aspx”);

则可以使用:

_value = Page.RouteData.Values [ “类别”]作为串;

来获取每个部分的数据。

+0

ps。 urlrewriter可以,但很难调试。我努力了。 – mark

+1

routes.MapPageRoute只能在.net 4.0中工作,不在3.5我认为。 – user1904478

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的值东阳中我的目标网址类似于/document.aspx?sid=42 & rid = 1 & mid = 1但是当我在url中键入的是this/models/childfirst/inbrief。