2016-11-03 3 views
2

J'examine actuellement un projet Sitecore existant. Un des éléments a un rendu de contrôleur qui sort un formulaire sur la mise en page. Dans la méthode d'action, pour le rendu du contrôleur, une ligne semble obtenir les informations d'identification du nom de la base de données de l'élément. J'ai jeté un oeil à la disposition de l'article, mais je ne trouve aucun champ de base de données. Je sais que Sitecore.Context.Item est destiné à obtenir l'élément actuel. Cependant, je suis sûr que dans le code ci-dessous, comment Sitecore.Context.Item.Database.Name pointe vers. Toute explication serait vraiment appréciée.Comment définir les détails de la base de données sur l'élément Sitecore.Context.Item.Database dans Sitecore

public ActionResult Form() 
    { 
     Item currentItem = Sitecore.Context.Item; 

     if (!IsValid(currentItem)) 
     { 
      return Redirect(Sitecore.Context.Site.VirtualFolder); 
     } 

     FormModel model = new FormModel(currentItem); 
     model.PageModel.Db = Sitecore.Context.Item.Database.Name; 
     model.PageModel.ItemId = Sitecore.Context.Item.ID.ToString(); 

     return View(model); 
    } 

Répondre

1

Votre « base de données » propriété n'est pas quelque chose que vous trouverez dans un champ ou quoi que ce soit - il se réfère à la base de données Sitecore où se trouve l'élément. Dans une configuration simple qui sera très probablement "maître" ou "web". La propriété name de la base de données se référera simplement à une chaîne qui indique la base de données (master - web - ...).

Comme dans Sitecore, votre article peut provenir de différentes bases de données, cette propriété peut être utilisée pour identifier cette source. Les éléments publiés seront dans une configuration standard dans la base de données Web, la base de données principale contiendra tous les éléments et versions et est utilisée lors de la modification.

2

Sitecore.Context.Item.Database.Name fournit la base de données de contexte dans laquelle vous affichez l'élément. Donc, si vous êtes dans l'éditeur d'expérience, vous obtiendrez maître ou si vous êtes sur le site lui-même, vous obtiendrez le web. Sitecore.Context est de fournir des informations de contexte comme l'élément, la base de données ou la langue.

Ainsi, par exemple Sitecore.Context.Item.Language fournira le langage contextuel dans lequel vous visualisez le contenu sur le site.