2014-05-25 1 views
3

J'ai besoin d'insérer plusieurs liens externes vers mon MVCSitemap. Fondamentalement, il y a un nœud parent appelé 'LINKS', que je vais remplir avec les URL d'une autre application, à travers un administrateur View.I se demandait s'il y a une méthode intégrée qui permet à un paramètre de trouver un nœud parent et d'y insérer un nœud enfant comme si je modifiais le document manuellement.MVC SitemapProiver, ajout d'un nouveau lien au plan du site lorsqu'une action se produit

Répondre

0

La méthode recommandée d'y parvenir est d'utiliser une coutume IDynamicNodeProvider ou ISiteMapNodeProvider pour alimenter les nœuds et utiliser SiteMapCacheReleaseAttribute sur les méthodes d'action qui modifient les données de SiteMap pour invalider le cache de sorte que le SiteMap chargera les nouveaux nœuds la prochaine fois, il est accédé.

[HttpPost] 
[SiteMapCacheRelease] 
public ActionResult Edit(int id, Product product) 
{ 
    try 
    { 
     using (var db = new CRUDExample()) 
     { 
      var model = (from p in db.Product 
        where p.Id == id 
        select p).FirstOrDefault(); 
      if (model != null) 
      { 
       model.Name = product.Name; 
       db.SaveChanges(); 
      } 
     } 
     return RedirectToAction("Index"); 
    } 
    catch 
    { 
     return View(); 
    } 
} 

SiteMapCacheReleaseAttribute doit être placé sur tous les ajouter, modifier et supprimer des méthodes d'action que vous souhaitez voir les changements se produisent immédiatement et devraient généralement n'appliquer sur le côté [HttpPost] depuis le général [HttpGet] doesn ne changez aucune donnée.

Questions connexes