2016-02-12 70 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

謝謝大家的意見。問題是有一個其他網站配置文件。斯蒂爾沒有解釋意外的行爲,但至少我解決了這個問題。