1

次のようなアクションで OutputCache を使用しています。

[OutputCache(Duration = 14400, VaryByParam = "none")]
public ContentResult Catalog()
{
 return ...;
}

また、Global.asax.cs の RegisterRoutes 関数には次のルートが含まれています。

routes.MapRoute(
    "XMLRoute", // Route name
    "{site}/catalog.xml", // URL with parameters
    new { controller = "Home", action = "Catalog" } // Parameter defaults
);

ルート マップの URL は次のようになります。

  • example.com/site1/catalog.xml
  • example.com/site2/catalog.xml
  • example.com/whatever/catalog.xml

カタログ アクションに。

期待される結果は、渡されたすべてのパラメーターの最初の要求の後に静的コンテンツを返すことだと思いますが、コンテンツは適切にキャッシュされていません。パラメータを使用するように Catalog アクションを変更してから、VarybyParam = "none" を指定し、MapRoute 関数で UrlParameter.Optional を使用してパラメータを追加する必要がありますか、それともここで何か他のことが起こっていますか?

4

1 に答える 1

0

多くの試行錯誤の末、最善の方法は次の方法を使用することであることがわかりました。

[OutputCache(Duration = 14400, VaryByParam = "*")]

デフォルトが使用され、キャッシュされたコンテンツが表示されるように、リダイレクトを使用してパラメータを指定します。

于 2013-07-09T09:35:32.507 に答える