モデルバインドビュー
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
September 2024より前にASP.NET Coreアプリを統合した場合は、従来の ASP.NET CoreレンダリングSDKバージョン22以前が使用されています。このSDKは更新プログラムを受け取らなくなったため、新しい ASP.NET Core 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モデルを提供します。
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ビュー:
@model MyRenderingHost.ComponentModels.ContentBlock
<section>
<h2 asp-for="Model.Heading"></h2>
<div>
<sc-text asp-for="Model.Content"></sc-text>
</div>
</section>
RazorビューでアクセスするContentBlockモデル:
using Sitecore.LayoutService.Client.Response.Model.Fields;
namespace MyRenderingHost.ComponentModels
{
public class ContentBlock
{
public TextField Heading { get; set; }
public RichTextField Content { get; set; }
}
}