10

私はMVC4アプリを持っていますが、主にWebAPIパーツに使用しています。「プレーンな古いHTML」ファイルをユーザーに送り返したい(KnockoutJSまたはKendoUIを使用してwebapiコントローラーからJSONをプルする)。

私はこれができることを知っています:

routes.IgnoreRoute("{page}.html");

そして、「localhost / index.html」を参照すると、.htmlページが正常に返されます。ただし、index.htmlを返すために、「root」のデフォルトパス「localhost/」をマップしたいと思います。

私はこれを試しました:

routes.MapPageRoute("root", "", "~/index.html");

しかし、それはエラーをスローします:

拡張子「.html」に登録されているビルドプロバイダーはありません。これは、machine.configまたはweb.configの<compilation><buildProviders>セクションで登録できます。値「Web」または「All」を含むBuildProviderAppliesToAttribute属性があることを確認してください。

誰かが私がこれを機能させる方法について何かアイデアがありますか?プレーンなhtmlページを返すデフォルトのコントローラーをヒットすることもできますが、ASP.NETスタック全体を一度HTMLページで処理し、WebAPIURLを呼び出してASP.NETスタックに戻るのはやり過ぎのようです。ページのモデルのJSONデータを取得します。

基本的には、すべてのMVC配管を「スキップ」して、ASP.NETアプリではないかのように、IISにhtmlページを返送させるか、少なくとも処理をできるだけ少なくしたいと考えています。

4

1 に答える 1

12

ルーティング設定に以下を追加します。

routes.IgnoreRoute("");
于 2012-09-14T03:17:29.460 に答える