モデルバインドビュー

Version: 10.1
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

大事な

前に アプリを統合した場合は、従来の ASP.NET Core Rendering SDKバージョン22以前を使用しています。このSDKは更新を受け取っていないため、新しい の最新バージョンにアップグレードすることをお勧めします。

モデル バインド ビューでは、既定のSitecoreComponentViewComponentビュー コンポーネントが使用されるため、ビュー コンポーネント クラスを作成する必要はありません。

/Views/Shared/Components/SitecoreComponentフォルダーとビュー モデル クラスにRazorビューを作成したら、the AddModelBoundView<TModel>()拡張メソッドを使用して、レイアウト サービスの応答をビュー コンポーネントにマップする必要があります。

次の例では、次のようになります。

  • AddModelBoundView<BoundContentBlock>("ContentBlock")ContentBlock応答コンポーネントをデフォルトのSitecoreComponentViewComponentビューコンポーネントにマップし、ContentBlock.cshtmlビューを使用し、ビューにBoundContentBlockモデルを提供します。

  • AddModelBoundView<BoundGenericBlock>(name => name.StartsWith("sc"), "GenericBlock")scで始まるすべての応答コンポーネントをGenericBlockViewComponentビュー コンポーネントにマップし、GenericBlock.cshtmlビューを使用し、ビューにBoundGenericBlockモデルを提供します。

RequestResponse
public void ConfigureServices(IServiceCollection services)
{
  var renderingEngineBuilder = services.AddSitecoreRenderingEngine(options =>
    options
      .AddModelBoundView<BoundContentBlock>("ContentBlock")
      .AddModelBoundView<BoundGenericBlock>(name => name.StartsWith("sc"), "GenericBlock")
  );
}

モデル バインド ビュー コンポーネントRazorビューからSitecoreコンテンツにアクセスする

モデル バインド ビュー コンポーネントのRazorビューでは、Layout Service応答のプロパティにバインドする厳密に型指定されたモデルが使用されます。

Razorビュー:

RequestResponse
@model MyRenderingHost.ComponentModels.ContentBlock

<section>
  <h2 asp-for="Model.Heading"></h2>
  <div>
    <sc-text asp-for="Model.Content"></sc-text>
  </div>
</section>

RazorビューでアクセスされるContentBlockモデル:

RequestResponse
using Sitecore.LayoutService.Client.Response.Model.Fields;

namespace MyRenderingHost.ComponentModels
{
  public class ContentBlock
  {
    public TextField Heading { get; set; }
    public RichTextField Content { get; set; }
  }
}

何かフィードバックはありますか?

この記事を改善するための提案がある場合は、