如何在 Sitecore 中设置 Sitecore.Context.Item.Database 项目的数据库详细信息

How do you set the Database details on Sitecore.Context.Item.Database item in Sitecore

我目前正在审查一个现有的 Sitecore 项目。其中一项具有控制器渲染,可将表单输出到布局上。在 Action Method 中,对于控制器呈现,有一行似乎获取项目的数据库名称凭据。我查看了项目的布局,但找不到任何数据库字段。我知道 Sitecore.Context.Item 是为了获取当前项目。但是,我知道在下面的代码中,Sitecore.Context.Item.Database.Name 是如何指向的。任何解释将不胜感激。

 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);
    }

您的 "Database" 属性 不是您可以在字段或任何地方找到的东西 - 它指的是项目所在的 Sitecore 数据库。在最有可能是 "master" 或 "web" 的简单设置中。数据库的名称 属性 将仅引用指示数据库的字符串 (master - web - ...)。

与在 Sitecore 中一样,您的项目可以来自不同的数据库,此 属性 可用于识别该来源。已发布的项目将在标准设置中位于网络数据库中,主数据库将包含所有项目和版本并在编辑时使用。

Sitecore.Context.Item.Database.Name 提供您正在其中查看项目的上下文数据库。因此,如果您在 Experience Editor 中,您将获得 master,或者如果您在网站本身,那么您将获得 web。

Sitecore.Context 是提供项目、数据库或语言等上下文信息。因此,例如 Sitecore.Context.Item.Language 将提供您在网站上查看内容时使用的上下文语言。