使用附加到root的UrlData

时间:2014-03-19 12:41:52

标签: asp.net vb.net razor

将ASP.NET网页与Razor一起使用,并提供以下两个网址:

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

是否可以在网站的根目录中创建一个内容页面,该页面可以检索“香肠”和“培根”作为URL数据?例如:

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

如果网址格式不重要,那么我可以通过创建Razor页面(例如page.vbhtml)来轻松完成此操作来处理请求:

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

但要求网址采用首次指定的格式。

1 个答案:

答案 0 :(得分: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