我正在尋找一種方式,通過調用UrlHelper
或Control.ResolveUrl()
上的許多方法調用生成的URL,這種方式對開發人員來說是完全透明的。ASP.NET是否有一個擴展點,通過它可以傳遞所有URL生成代碼?
主要的情況是添加一個語言'標記'的網址。開發人員像往常一樣創建一個鏈接到一個動作或一個ASPX頁面,但是URL生成被「攔截」以使鏈接「語言意識」可以這麼說。我不希望看到這個橫切關注'泄漏'到代碼中。 (當用戶點擊鏈接時,URL中的語言標記被解釋,並且請求被重寫,所以它正常工作)。
ASP.NET是否具有所需的擴展點來執行此操作?換句話說:什麼樣的類我可以註冊(我在哪裏註冊),這是總是在URL生成時調用的?
源代碼粗略地看一眼在aspnetwebstack.codeplex.com表明ASP.NET最終依靠VirtualPathUtility
類,但不像VirtualPathProvider
(用於解析傳入的URL到磁盤上的文件),它不能被執行(這是一個靜態類) 。
您也可以不更改URL,但更改_interpreted_的方式。 –
@JohnSaunders你能詳細說明一下嗎? –
不是我最喜歡的處理網址的方式,但看看:http://www.iis.net/downloads/microsoft/url-rewrite。這發生在IIS級別。否則,您正在尋找的課程是您不想用於W/E原因的課程,也就是路由。我建議通過url重寫進行路由,但它更容易管理,但如果你想要一個快速的一次性使用url重寫。 – RandomUs1r