問題タブ [display-templates]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
137 参照

sharepoint-2013 - コンテンツ検索 Web パーツのコンテンツ タイプの説明値

管理プロパティ (ContentType) を使用するコンテンツ検索 Web パーツで、リスト アイテムのコンテンツ タイプ「タイトル」を取得できます。

しかし、私の問題は、タイトルではなくコンテンツタイプ「説明」を取得する必要があることです。コンテンツ タイプの説明の管理プロパティを検索しましたが、何も見つかりません。

残りの API を使用して、アイテム (~100) のコンテンツ タイプ タイトルを使用してコンテンツの説明を取得しましたが、この問題により、ページの読み込みに時間がかかります。

誰かが表示テンプレートでコンテンツ タイプの説明を取得する方法を知っていて、ページの読み込みに時間がかからないように教えてください。

前もって感謝します。

ミラン・ジャイナ

0 投票する
1 に答える
44 参照

asp.net-mvc - クラスの DisplayTemplate のデフォルト出力

InlineImage など、ビュー モデルに特定の構造化型を提供するクラス ライブラリを構築しています。

@Html.DisplayFor(...) で使用する場合、基本的にそのようなインスタンスのデフォルトの HTML 出力を定義できる必要があります...

  • /Views/DisplayTemplates/InlineImage.cshtml が利用可能な場合は、そのテンプレートを使用します
  • 利用できない場合は、デフォルトを出力する必要があります

でも ...

  • そのクラスの ToString() だけをオーバーライドすると、正しい出力が得られますが、HTML エンコードされます。

[DisplayFormat(HtmlEncode = false)] を CLASS に追加することでエンコーディングを無効にできる MVC ソース コードを分析したところ、

しかし...属性はクラスを対象としないため、クラスに追加する別の属性にラップしてハックします。厄介ですが、少なくとも機能します:)

私のコードは現在次のようになっています。

デフォルトのディスプレイでは機能しますが、ファイル システムでディスプレイ テンプレートが提供されている場合は使用されません。おそらく、そのデータ注釈のために、途中で何かがそれを切り取ったためです。

私はすでにこれに似た他のいくつかのアプローチを試しました:

  • Html データ注釈で最初のプロパティを使用する
  • Html データ注釈で表示プロパティを使用する
  • IHtmlString の実装

ただし、フレームワークは、この場合、クラス自体のメタデータのみをチェックし、そのプロパティについてはチェックしないようです。IHtmlString は完全に無視されます。

クラスライブラリから特定のクラスのデフォルトの表示テンプレートを提供する方法のヒントを探しています。これは、標準の表示テンプレートをビューフォルダーに配置するだけでオーバーライドできます。