2012-04-11 16 views
2

我已經在我的項目成功實施了路由功能(新聞網站):ASP.NET路由:格式化的URL字符串

Sub RegisterRoutes(ByVal routes As RouteCollection) 
     routes.MapPageRoute("ndetails", "news/{title}/{id}/", "~/newsdetail.aspx") 
End Sub 

,我設定的網址是這樣的(數據綁定到一箇中繼器):

href="<%# Page.GetRouteUrl("ndetails", new with { .title= Server.UrlEncode(Eval("Title")), .id= Eval("NewsID")})%>" 

產生的URL是這樣的:

/this%20is%20a%20news%20item/89 

正如上面可以看出,URL部分是難以閱讀和我想它是這樣的:

/this_is_a_news_item/89 

我想到了一個替換功能。但是,因爲創建新聞的用戶可能會輸入任何字符串,所以我必須考慮可能需要替換的所有其他字符。

我只是想從一位經驗豐富的開發人員那裏瞭解一下,是否需要使用長替換函數,或者是否有另一種解決方案來在這種情況下格式化我的URL。

提前

回答

0

非常感謝AFAIK沒有內置在funcitonality的框架,以使URL「漂亮」。你必須實現自己的URL重寫標題。

在保存實體時只需使用一個函數來代替你需要的('''''或'),然後使用UrlEncode。 您也可以使用正則表達式一次完成替換。