将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
但要求网址采用首次指定的格式。
答案 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