2016-02-12 69 views
2

后来更新 所以,花了一些时间试图弄清楚这一点,我得到这个: 在sitecore.config有你定义你的网站的部分。当我尝试设置自定义登录页面时,我将“loginPage”属性添加到“网站”网站元素,但它不起作用。Sitecore的项目字段值空

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

有没有人知道什么是适合这种情况的正确设置?我没有找到Sitecore文档来澄清这件事。

感谢


我有以下问题(我是一种新的发展Sitecore的,所以可能会有一些简单的东西,但我不能算出它)

我有对于某些错误消息的模板,我将展示在网站上,我有以下内容的文件夹中保存我这个项目

有3场我的模板添加: - 类型 - ResultKey - 中号essage

他们都是单行文本

现在,在Visual Studio中我有一个例程做到这一点:

/// <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的价值观和他们公布(我查了网站数据库)

语境 Sitecore的8.1 ​​ VS 2013 MVC 5.2.3

谢谢

+1

你确定你的'itemPath'正在给你返回正确的项吗? –

+1

你需要发布吗?当你首次使用时,上下文数据库是什么? –

+1

您确定您在前端使用的语言版本中输入了值吗? –

回答

0

试图改变自己的查询到:return Sitecore.Context.Database.GetItem(itemPath,Sitecore.Context.Language); 如果您没有指定语言,返回的项目可以使用不同于您在上下文中使用的语言,并且因为您的数据为空。

最好的问候, 卢卡斯Skowroński

+0

嗨,我只是测试这个,但仍然无法正常工作。它必须是字段名称。我认为存在冲突或类似的情况。这比烦人! –

1

下面是得到空结果的可能性。

  1. 语言版本在获取项目时未正确传递。
  2. 项目的路径可能不正确
  3. 上下文数据库可能是错误的,数据可能在主数据库中,但是您指的是Web数据库。
  4. 尝试使用按物品ID获取物品。
  5. 可能有不同版本的同一项目,你光取了错误的版本,具有空值
0

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