2017-03-02 5 views
1

2つの異なるasp.netコアルート(route1とroute2という名前)を作成する以下のコントローラメソッドが定義されています。私はそれを呼び出すときに私は以下のcshtmlを使用すると期待しています:なぜASP.NET Core CacheTagHelperは経路別にキャッシュを更新しないのですか?

localhost/route1 
localhost/route2 

私のキャッシュは置き換えられますが、そうではありません。

(渡されたパラメータ{paramは}私の期待通りの結果を変更しないもの)

コントローラのページ

[Route("/route1/{param}", Name = "route1")] 
    public IActionResult Route1(string param) 
    { 
     ViewData["Message"] = "route1."; 
     return View("CacheTagHelper/vary-by-route"); 
    } 

    [Route("/route2/{param}", Name = "route2")] 
    public IActionResult Route2(string param) 
    { 
     ViewData["Message"] = "route2."; 
     return View("CacheTagHelper/vary-by-route"); 
    } 

ビューページ

<Cache vary-by-route="route1,route2">Time Inside Cache Tag Helper : @DateTime.Now</Cache> 

答えて

1

何のルート値はありません/ route1のキールート2。別名キャッシュTagHelperは次のとおりです。

<cache vary-by-route="param">Time Inside Cache Tag Helper : @DateTime.Now</cache> 
+0

私は混乱しています。 vary-by-routeはビューへのルートを変更することに基づいてキャッシュを破損しませんか?つまり、/ route1と/ route2は同じルートとして見なされますか?これを行うgithubのソースに私を指摘できますか?私はそれを見つけることができませんでした。 - 感謝 –

0

githubリポジトリに投稿されている古い問題から、これに関する良い定義が見つかりました。

が変更されるべきルートデータパラメータ名のコンマ区切りのリスト。ルートデータパラメータ値は、キャッシュエントリキーの一部として として使用されます。 N-テイラー・マレン@

https://github.com/aspnet/Mvc/issues/1552

関連する問題