1

現在、MVCSiteMapProvider を使用してサイトのブレッドクラムを生成しています。SiteMapTitle 属性に viewData 値を渡すことで、サイト マップのタイトルを作成しています。最初にリンクにアクセスすると、必要に応じてパンくずリストが作成されますが、自分のサイトから他のリンクに再度アクセスしようとすると、タイトルの Viewdata の最初にアクセスした値が表示されます。コードは次のようになります

[SiteMapPreserveRouteData] 
    [SiteMapTitle("atlas")]
    public ActionResult Index(string id ,string Atlas)
    {
        if (!string.IsNullOrEmpty(Atlas))
        {
            ViewData["atlas"] = Atlas;
        }
        Taxonomy taxonomy = db.GetTaxonomy(new Guid(ConfigurationManager.AppSettings["TherapyId"]));

        var atlasList = taxonomy.GetTerms(id, 2);

        return View(atlasList);
    }

サイトマップはこんな感じ

<mvcSiteMapNode title="Home" controller="Home" action="Index" changeFrequency="Always" updatePriority="Normal" >

<mvcSiteMapNode title="Therapy"  controller="Therapy" action="Index"  >
  <mvcSiteMapNode title=""  controller="Atlas" action="Index" >
    <mvcSiteMapNode title=""  controller="Specialties" action="Index">
      <mvcSiteMapNode title=""  controller="Specialties" action="ViewImage"  />      
    </mvcSiteMapNode>        
  </mvcSiteMapNode>
</mvcSiteMapNode>

どんな助けでも大歓迎です

4

2 に答える 2

0

おそらく、プロバイダーによって実装されたキャッシュが原因です。(web.config で) cacheduration を 0 に設定してキャッシュを無効にすることもできますが、これはパフォーマンスに大きな影響を与えます。

于 2012-06-11T21:22:54.457 に答える