Sitecore项字段值为空

时间:2016-02-12 16:15:43

标签: c# sitecore

稍后更新 所以,花了一些时间试图解决这个问题,我得到了这个: 在sitecore.config中有一个部分,您可以在其中定义您的网站。当我尝试设置自定义登录页面时,我将“loginPage”属性添加到“网站”网站元素,但它不起作用。

有一次,我意识到我必须将名称从“网站”更改为“myhost_name”,并且登录页面开始按预期工作,但事实证明删除“网站”网站元素并不是很明亮想法因为网站开始出现这种不稳定的行为。

有谁知道这种情况的正确设置是什么?我没有在这个问题上找到Sitecore文档。

谢谢

我有以下问题(我是Sitecore开发的新手,所以它可能是一些简单的东西,但我无法弄明白)

我有一个模板,用于显示我将在网站上显示的一些错误消息,并且我在内容下有一个文件夹,用于存储此项目

我在模板上添加了3个字段: - 类型 - ResultKey - 消息

所有这些都是单行文字

现在,在视觉工作室中,我有一个例行程序可以做到这一点:

/// <summary>
/// Get an Item by path
/// </summary>
public Item GetItemByPath(string itemPath)
{
    return Sitecore.Context.Database.GetItem(itemPath);
}

我还有另一个应该返回ViewModel

的人
public ModelValidation GetMessageByName(string itemName, string xpath)
{
    var mess = GetItemByPath(xpath + itemName);
    if (mess == null) return new ModelValidation(3, itemName);

    int type;
    string stype = "";
    string message = "";
    mess.Fields.ReadAll();

    if (mess.Fields["Type"] == null)
        stype = "3";
    else
        stype = mess.Fields["Type"].Value;
    if (!int.TryParse(stype, out type))
        type = 3;
    if (String.IsNullOrEmpty(mess.Fields["Message"].Value))
        message = itemName;
    else
        message = mess.Fields["Message"].Value;

    return new ModelValidation(type, message);
}

问题: 返回该项,所有字段都已就位,但我的字段值为“”(String.Empty)

我做错了什么? 这些项目在Sitecore中具有值并且已发布(我检查了Web数据库)

上下文 Sitecore 8.1 VS 2013 MVC 5.2.3

谢谢

3 个答案:

答案 0 :(得分:1)

以下是获得空结果的可能性。

  1. 获取项目时未正确传递语言版本。
  2. 项目的路径可能不正确
  3. Context数据库可能有误,数据可能在master中,但您指的是Web数据库。
  4. 尝试按项目ID提取项目。
  5. 同一项目可能有不同的版本,您可能会获取具有空值的错误版本

答案 1 :(得分:0)

尝试将您的查询更改为:return Sitecore.Context.Database.GetItem(itemPath,Sitecore.Context.Language); 如果您未指定语言,则返回的项目可能使用与上下文不同的语言,因此您的数据为空。

祝你好运, ŁukaszSkowroński

答案 2 :(得分:0)

谢谢大家的意见。问题是有一个其他站点配置文件。 Stil没有解释意外的行为,但至少我解决了这个问题。