我的問題是基本相同@Bob黑色的Cannot access sitecore item field via API但我@ techphoria414是接受的解決方案是沒有必要的,在我的情況不工作達成一致。不能編程訪問一個新的領域上的模板在Sitecore的
在我自己的話,我有一個模板Departure
,我已經使用了一年左右,現在編程方式創建和更新項目。我在模板中添加了一個新字段Ship
。當我創建一個新項目時,當我嘗試使用departure.Fields["Ship"]
訪問它時,該字段爲空。如果我跨過導致異常的線路,然後在撥打departure.Editing.EndEdit()
後,我可以看到Ship
字段,如果我撥打departure.Fields.ToList()
。如果我通過Sitecore GUI將模板添加到內容項目中,我可以看到該字段並使用它,如果我查看基於模板的內容項,我也可以看到新的字段。所以只有當我以編程方式訪問模板/項目時它是空的。
我有Sitecore的與當地的SQLSERVER我的本地機器上運行,併發布到我的本地機器。
這裏是我的代碼
String ship = "MSDisaster";
foreach (Language language in SiteLanguages)
{
departure = departure.Database.GetItem(departure.ID, language);
departure.Editing.BeginEdit();
try
{
departure.Fields["StartDate"].Value = GetSitecoreDateString(xDep, "StartDate");
departure.Fields["EndDate"].Value = GetSitecoreDateString(xDep, "EndDate");
departure.Fields["Guaranteed"].Value = xDep.SelectSingleNode("./Guaranteed").InnerText;
departure.Fields["Status"].Value = xDep.SelectSingleNode("./Status").InnerText;
departure.Fields["Currency"].Value = ConvertLanguageToCurrency(language);
departure.Fields["Market"].Value = ConvertLanguageToMarket(language);
departure.Fields["TwinSharePrice"].Value = GetPrice(xDep, "twn", language);
departure.Fields["SinglePrice"].Value = GetPrice(xDep, "sgl", language);
if (!String.IsNullOrEmpty(ship))
departures.Fields["Ship"].Value = ship;
}
catch (Exception ex)
{
departure.Editing.CancelEdit();
log.Error(ex);
throw ex;
}
departure.Editing.EndEdit();
}
所以,我怎麼領域有所回升?
謝謝,
詹姆斯。