2012-07-09 66 views
1

我對sitecore和.net都很陌生,並且正在慢慢地掌握它。但是我對這個問題感到沮喪,因爲它似乎違背了我在論壇和sitecore文檔中讀到的內容。我只是試圖添加字段到HTML標籤的屬性。例如,我在sublayout文件中有這個。Sitecore將html屬性轉換爲字符串的asp調用

<title><%= Sitecore.Context.Item["Page Title"] %></title> 
<meta name="description" content='<%= Sitecore.Context.Item["Description"] %>' /> 

預覽結果輸出是這樣的。

<title>Inputted Page Title</title> 
<meta name="description" content="<%= Sitecore.Context.Item["Description"] %>" /> 

Sitecore似乎只是把它作爲一個字符串來抓取它。

任何人之前看過這個或看到我可能會出錯哪裏?

回答

0

我想通了。下面的行是正確的語法,但它是一個使用其內部文件瀏覽器的sitecore事物。 Sitecore會編碼<以創建ascii &lt;

<meta name="description" content="<%= Sitecore.Context.Item["Description"] %>" 

我不得不使用文件資源管理器的原因是客戶IT部門不會讓我訪問服務器文件。所以最後他們做了,當我直接訪問文件並保存所有工作。感謝所有的反饋。

1

首先,如果確實發生這種情況,就像您在此處描述的那樣,這是ASP.NET解析錯誤,與Sitecore無關。

完美檢查#1:這真的是所有的代碼?你的meta標籤中沒有runat =「server」屬性?因爲這肯定會導致這類問題。

如果沒有,這不應該發生......但我覺得有時更可靠使用此結構:

<meta name="description" content=<%="\"" + Sitecore.Context.Item["Description"] + "\""%> /> 

惱人的種類,但可能在這裏工作。或者在標籤周圍嘗試單引號。一般來說,如果您的HTML輸出中有任何<%%>標記,則會出現嚴重錯誤。

1

另一種選擇是將其綁定在C#:

HtmlMeta metaKeywords = new HtmlMeta(); 
metaKeywords.Name = "Description"; 
metaKeywords.Content = Sitecore.Context.Item["Description"]; 
Header.Controls.Add(metaKeywords); 
+0

+1 - 通常使用這種方法,它可以讓我更靈活,解析錯誤更少。 – al3xnull 2012-07-10 12:38:38