2014-03-03 21 views
1

我成功地使用「友好的URL」模塊在ASP.NET 4.5ASP.NET「友好的URL」模塊 - 不工作的

在航線配置根URL,我可以添加一個路線是這樣的:

routes.MapPageRoute("mypage", "mypage/{mypageName}", "~/mypage.aspx"); 

像這樣的URL:

mysite.com/mypage/hello

頁面

'mypage.aspx' 我能得到URL段是這樣的:

using Microsoft.AspNet.FriendlyUrls; 

// Get URL segments 
IList<string> segments = Request.GetFriendlyUrlSegments(); 
if (segments.Count > 0) 
{ 
    // Get first segment 
    string url = segments[0]; 



} 

但是,我無法得到這個根URL的工作。例如'my site.com/ttee'

我想要'ttee'並將它傳遞到頁面中。但'Request.GetFriendlyUrlSegments()'爲根返回0。

我該如何做到最好?

回答

4
routes.MapPageRoute("mypage", "mypage/{mypageName}", "~/mypage.aspx"); 

這將只對該格式的URL:

www.example.com/mypage/changingparthere 

如果你想讓它

www.example.com/changablemypage 

它設置爲:

routes.MapPageRoute("mypage", "{mypageName}", "~/mypage.aspx"); 

但作爲你可以看到,它會從字面上理解一切。所以確保它是Global.asax上的最後一個路由。

+0

謝謝。如何最好地在我使用的頁面中獲取{mypageName}的值? – niico

+0

你不需要那個友好的網址。只需寫入字符串url = RouteData.Values [「mypageName」]。ToString(); – Kuzgun

+1

這裏關鍵的是:IList segments = Request.GetFriendlyUrlSegments(); >這適用於非路由的「友好」URL,這是你需要路由的URL:url = RouteData.Values [「mypageName」]。ToString(); – niico