【发布时间】:2019-02-19 16:10:25
【问题描述】:
我正在尝试将 ASP.Net 中的 URL 路由用于非 aspx 文件扩展名
当我开始使用 asp.net 时,我的代码变得杂乱无章,并且结构在很多文件夹中 为了隐藏我的目录路径并获得我使用的有意义的综合 URL 网址路由 有几个文档,对我来说最简单的教程是http://www.4guysfromrolla.com/articles/051309-1.aspx
默认情况下,URL 路径显示我的完整文件夹结构,为了隐藏此信息,我使用 URL 路由 在下面的代码之后,我被允许使用带有虚拟路径的重定向
RouteTable.Routes.Add("login", new Route("login", new RouteHandler(string.Format("~/…/Login.aspx"))));
如果您使用 HTML 等非 .aspx 文件扩展名,则需要在 web.config 中为该扩展名添加 Buildproviders
例子:
RouteTable.Routes.Add("testhtml", new Route("testhtml", new RouteHandler(string.Format("~/.../test.html"))));
Web.Config:
<system.web>
<compilation debug="true" targetFramework="4.6.1" >
<buildProviders >
<add extension=".html" type="System.Web.Compilation.PageBuildProvider"/>
</buildProviders>
</compilation>
<…>
现在http://localhost:58119/testhtml 与http://localhost:58119/.../test.html 相同,路径完整
我的问题
默认 ASP.net 可以重定向到 ~/…/test.pdf 或 ~/…/test.png。
使用 URL 路由,它再次请求构建提供程序的文件扩展名。
但是如果我是正确的,msdn 文档中没有这些扩展的默认构建提供程序:/
【问题讨论】:
标签: c# asp.net url-routing file-extension buildprovider