私は 〜/ビュー]フォルダに配置されている静的.htmlファイルを要求することができるようにしたいです。
それは解決策を提供するが、マークされた答えは完全には正しくありません。
マークされた回答の理由は正しいです。Viewsフォルダにweb.config(BlockViewHandler設定を指定)を指定すると、ファイルに直接アクセスできなくなります。 Asp.Net MVCのビューを保護するためにそこにあります。しかし、これらのファイルを直接提供することについて質問した場合、AngularJSの部分的なビュー(私たちの場合のように)を使用して、奇妙な名前でviewsフォルダを複製したくない場合など、正当な理由がある可能性があります。
ここでは、asp.net MVCビューのセキュリティを損なうことなく、Viewsフォルダにあるweb.configファイルで行うことができる非常に簡単な調整があります。これはいつものように.cshtmlファイルを確保したが、JSとHTMLなどのファイルを許可するに
変更この
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
--to--
<add name="BlockViewHandler" path="*.cshtml" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
または、代わりにURLが同じ「外観」を持っているので、あなたが... [ビュー]フォルダの中に発見されたコントローラ名構造を模倣することができ、あなたのフォルダ「静的」を命名します。例えば。あなたはplainjane * Edit.html *をViews/Order/Edit.htmlに置くことができないので、〜/ Order/Edit.htmlに入れます – bkwdesign
これは最新のASP.NET(vNext)で変更されましたhtmlファイル用の静的プロバイダを登録するだけでなく、通常のMVC方法を引き続きルーティングします。私はそれを使って素早く遊んでいましたが、それはテストプロジェクトでやったことです。 Linuxでkestrelを実行していますが、IISは同じであるはずです。 – ppumkin
@bkwdesign私のコントローラのデフォルトハンドラを台無しにして、アクセスできないフォルダ構造を模倣することによってその設定が制御されると確信しています。だから、この状況をテストしてください。 –