1

私は.netだけでなくsitecoreにもかなり慣れていないので、ゆっくりとコツをつかんでいます。しかし、フォーラムやサイトコアのドキュメントで読んだ内容に反しているように思われるため、これには困惑しています。htmlタグの属性にフィールドを追加しようとしているだけです。たとえば、これはサブレイアウトファイルにあります。

<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はそれを文字列として取得しているようです。

誰かがこれを前に見た、または私がどこで間違っているのか見たことがありますか?

4

3 に答える 3

1

別のオプションは、C#でバインドすることです。

HtmlMeta metaKeywords = new HtmlMeta();
metaKeywords.Name = "Description";
metaKeywords.Content = Sitecore.Context.Item["Description"];
Header.Controls.Add(metaKeywords);
于 2012-07-10T12:37:02.220 に答える
1

まず、ここで説明したようにこれが実際に発生している場合、これはASP.NETの解析エラーであり、Sitecoreとは関係ありません。

健全性チェック#1:これは本当にすべてのコードですか?メタタグにrunat="server"属性がありませんか?それは確かにこの種の問題を引き起こす可能性があるからです。

そうでなければ、これは起こらないはずです...しかし...私は時々この構成を使用する方がより信頼できると思います:

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

ちょっと面倒ですが、ここでうまくいくかもしれません。または、タグを一重引用符で囲んでみてください。一般に、HTML出力に<%%>タグが含まれている場合は、重大な問題があります。

于 2012-07-10T00:23:16.293 に答える
0

私はそれを考え出した。以下の行は正しい構文でしたが、内部ファイルエクスプローラーを使用したサイトコアのものでした。Sitecoreは<をエンコードしてASCIIを作成します&lt;

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

ファイルエクスプローラーを使用しなければならなかった理由は、クライアントのIT部門がサーバーファイルへのアクセスを許可しないためです。それで最終的に彼らはそうしました、そして私がファイルに直接アクセスして保存したとき、すべてがうまくいきました。フィードバックをありがとうございました。

于 2012-07-13T22:16:34.407 に答える