Asp.net 无法在sitecore中保存项目字段
一项基本任务,但无法完成。 数据模板如下所示:Asp.net 无法在sitecore中保存项目字段,asp.net,sitecore,sitecore8,Asp.net,Sitecore,Sitecore8,一项基本任务,但无法完成。 数据模板如下所示: Comment --(template ID is {AB86861A-6030-46C5-B394-E8F99E8B87DB}) -Comment --section -Author --field -Comment Text --field 我正在创建该模板的一个新项,如下所示 protected void btnSubmit_Click(object sender, EventArgs e) { Sitecore.
Comment --(template ID is {AB86861A-6030-46C5-B394-E8F99E8B87DB})
-Comment --section
-Author --field
-Comment Text --field
我正在创建该模板的一个新项,如下所示
protected void btnSubmit_Click(object sender, EventArgs e)
{
Sitecore.Data.Database masterDb = Sitecore.Configuration.Factory.GetDatabase("master");
Item parentItem = Sitecore.Context.Item;
var template = masterDb.GetTemplate("{AB86861A-6030-46C5-B394-E8F99E8B87DB}");
using (new Sitecore.SecurityModel.SecurityDisabler())
{
Item newItem = parentItem.Add(Sitecore.DateUtil.IsoNow, template);
try
{
if (newItem != null)
{
newItem.Editing.BeginEdit();
newItem["Author"] = txtAuthor.Text;
newItem["Comment Text"] = txtContent.Text;
newItem.Editing.EndEdit();
}
}
catch
{
//...log error
newItem.Editing.CancelEdit();
}
}
txtAuthor.Text = string.Empty;
txtContent.Text = string.Empty;
}
正如我在内容树中看到的,该项以时间戳作为名称保存。现在,当我尝试查看值(作者、注释文本)时,它们是空的。所以,我怀疑,他们一开始是否得救了
使用另一个Usercontrol代码查看注释
private void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Database masterDb = Factory.GetDatabase("master");
Item parentItem = Sitecore.Context.Item;
var commentTemplate = masterDb.GetTemplate("{AB86861A-6030-46C5-B394-E8F99E8B87DB}");
var commentsList = parentItem.Children.Where(x => x.TemplateID == commentTemplate.ID);
Item item = commentsList.FirstOrDefault();
Response.Write(item["Author"] + "$$" + item["Comment Text"]);
}
}
结果只是
$$
我错过了什么
更新:
错误在于所引用的ID。我使用的是“评论”数据模板的
模板ID
。它必须是它的ID
您有不同的字段名:Comment Author和Author。每次创建一个try catch
,但至少没有记录异常,就会有一只小猫死亡。@siteCoreclimper。对不起,打错了。现在更正。您正在从CD服务器运行此代码吗?哪个可以访问您的主数据库…?Item=commentsList.FirstOrDefault();您可以检查项目的id、在内容编辑器中搜索并检查字段值吗。在保存和读取该项目时,还要检查该项目的语言。