C# Sitecore项目字段值为空
以后更新 所以,我花了一些时间试图弄明白这一点,我得到了以下结论: 在sitecore.config中有一个部分,您可以在其中定义网站。当我试图设置一个自定义登录页面时,我将“loginPage”属性添加到“website”站点元素中,但它不起作用 有一次,我意识到我必须将名称从“网站”更改为“myhost_name”,登录页面开始按预期工作,但事实证明,删除“网站”网站元素并不是一个很好的主意,因为网站开始出现这种不稳定的行为 有人知道这种情况下的正确设置吗?在这件事上,我找不到需要澄清的Sitecore文档 谢谢C# Sitecore项目字段值为空,c#,sitecore,C#,Sitecore,以后更新 所以,我花了一些时间试图弄明白这一点,我得到了以下结论: 在sitecore.config中有一个部分,您可以在其中定义网站。当我试图设置一个自定义登录页面时,我将“loginPage”属性添加到“website”站点元素中,但它不起作用 有一次,我意识到我必须将名称从“网站”更改为“myhost_name”,登录页面开始按预期工作,但事实证明,删除“网站”网站元素并不是一个很好的主意,因为网站开始出现这种不稳定的行为 有人知道这种情况下的正确设置吗?在这件事上,我找不到需要澄清的Si
我有以下问题(我是Sitecore开发的新手,所以这可能是一些简单的东西,但我无法解决) 我有一些错误消息的模板,我将在网站上显示,我在内容下有一个文件夹,我在那里存储这些项目 我在模板上添加了3个字段: -类型 -结果键 -信息 它们都是单行文本 现在,在visual studio中,我有一个例程可以执行以下操作:
/// <summary>
/// Get an Item by path
/// </summary>
public Item GetItemByPath(string itemPath)
{
return Sitecore.Context.Database.GetItem(itemPath);
}
问题:
返回该项,所有字段都已就位,但“我的字段”的值为“”(String.Empty)
我做错了什么?
这些项目在Sitecore中具有值,并已发布(我检查了Web数据库)
上下文
Sitecore 8.1
VS 2013 MVC 5.2.3
谢谢尝试将查询更改为:return Sitecore.Context.Database.GetItem(itemPath,Sitecore.Context.Language); 如果未指定语言,则返回的项可以使用与上下文中不同的语言,因此数据为空 致以最良好的祝愿,
Łukasz Skowroński下面是获得空结果的可能性
谢谢大家的建议。问题是存在另一个站点配置文件。斯蒂尔没有解释这一意外行为,但至少我解决了这个问题 您确定您的
itemPath
返回了正确的项目吗?是否需要发布?首次使用时,上下文数据库是什么?您确定在前端使用的语言版本中输入了值吗?当我调试它时,我在正确的项目上,语言是预期的,上下文数据库是WEB当调试器点击GetMessageByName时,“Message”字段存在且为空?您是否尝试以管理员身份打开Sitecore并将数据库更改为web。然后找到该项目,确保消息字段中有数据。嗨,我刚刚测试过,但仍然不起作用。它必须是带有字段名称的东西。我认为有冲突或类似的事情。这可真烦人!配置问题是什么?我在同一版本上遇到了类似的问题,但排除了列出的其他可能性。
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);
}