基本任务但无法实现。 数据模板如下:
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。我使用的是“评论”数据模板的Template ID
。它必须是ID
。