2011-08-08 78 views
2

可能重複:
How does StackOverflow generate its SEO-friendly URLs?Asp.Net路由 - 用破折號從網址替換空格%20產生

我用Asp.net 4和路由

我用這條路線爲我的網站創建搜索引擎優化友好的網址。 Title url paramenter是一個字符串示例「This is a Title」,結果我在瀏覽器中以這種格式獲得URL /Content/This%20is%20a%20Title

我寧願用空白%20代替,例如:/Content/This-is-a-Title

任何想法如何做到這一點?非常感謝您對這個

 routes.MapPageRoute(
      "View Content",      // Route name 
      "Content/{Title}",     // Route URL 
      "~/Cms/FrontEndCms/Content.aspx" // Web page to handle route 
     ); 

回答

2

幫助當你重定向到該網址,使用以下命令:

Response.Redirect(Page.GetRouteUrl(
    "View Content", 
    new { Title=(yourtitlehere).ToString().Trim().Replace(" ","-") }) 
); 

我加Trim()。如果標題以空格開始或結束,則服務器可能認爲它是不同的路徑並返回404: Resource not found

+1

嗨,感謝您的回答,但代碼應該本地運行在路由上。 – GibboK

+0

是的,當你重定向,或者你可以設置該代碼鏈接的網址 –

+0

謝謝,現在我明白了。你的解決方案很快就會採用,但我想可能會有一些性能退步。最後,我剝離我的網址並存儲在數據庫中,因此我使用路由來獲取乾淨的URL或我的鏈接。無論如何,非常感謝:) – GibboK

相關問題