aspx 以外のファイル拡張子に対して ASP.Net で URL ルーティングを使用しようとしています
asp.net をいじり始めたとき、コードが乱雑になり、多くのフォルダーで構成されていました。ディレクトリ パスを非表示にして、意味のある統合 URL を取得するために、URL ルーティングを使用しました。 /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 ルーティングを使用すると、ファイル拡張子の buildproviders が再度要求されます。
しかし、私が正しい場合、msdn ドキュメントにはこれらの拡張機能のデフォルトのビルドプロバイダーはありません:/