2014-03-19 65 views
1

使用ASP.NET Web頁面剃刀並給出了以下兩個網址:使用UrlData追加到根

http://example.com/sausages 
http://example.com/bacon 

是否有可能在該網站的根可能檢索「香腸」創建內容頁和「培根」作爲URL數據?例如:

Dim a As String = UrlData(0) ' This will be "sausages" or "bacon" 

如果URL格式不是關鍵的話,我可能會創建一個剃刀頁面(如page.vbhtml)來處理請求做到這一點很容易:

http://example.com/page/sausages 
http://example.com/page/bacon 

但要求是爲了使URL首先被指定爲格式。

回答

3

內置路由不支持你想要做的事情。 URL的第一部分必須與物理文件相匹配。但是,您可以使用WebPageRouteHandler包(通過Nuget提供:https://www.nuget.org/packages/WebPageRouteHandler/)來執行此操作。

一旦你已經安裝的軟件包,你只需要一個路線添加:

RouteTable.Routes.MapWebPageRoute("{*stem}", "~/Page.vbhtml") 

一切都將被路由到Page.vbhtml,在下面將讓你「培根」或「香腸」或域後確實什麼:

Dim values = Context.GetRouteValue("stem") 

你可以閱讀更多關於包的位置:http://www.mikesdotnetting.com/Article/187/More-Flexible-Routing-For-ASP.NET-Web-Pages

+0

神奇的包和物品!我不得不將它轉換爲VB.NET,但這很簡單。非常感謝。 –