Sitecore MVCで正式にサポートされたEdit Frameを利用してみる

samatsu 9/23/2016 1630 N/A Sitecore Programming

Sitecore MVCをSitecore 7.X や Sitecore 8.0 では Sitecore MVCには EditFrame Webコントロールに相当する機能が提供されていませんでした。Webを検索するといろんなことろに回避策が公開されているので実際にはこれは大きな問題ではありません。

Sitecore 8.2 では Sitecore MVC自身が EditFrameコントロールの Sitecore MVC版を提供しています。使い方は EditFrame コントロールの使い方を知っていれば直感的に理解できます。例えば、次のように使えます。Html.EditFrame拡張関数を読んでいる部分が該当する箇所です。

@using Sitecore.Mvc
@using Sitecore.Mvc.Analytics.Extensions
@using Sitecore.Mvc.Presentation
@using Sitecore.Mvc.Extensions
@model RenderingModel
@{
    Layout = null;
}
<!DOCTYPE html>
<html>
<head>
    <title>@Html.Sitecore().Field("title", new { DisableWebEdit = true })</title>
    @Html.Sitecore().VisitorIdentification()
</head>
<body>
    @using (Html.EditFrame(Model.Item.ID.ToString(), "Default", "sample", "sample tooltil", "", new { }))
    {
        <h1>@Html.Sitecore().Field("title")</h1>
        <div>
            @Html.Sitecore().Field("text")
        </div>
    }
</body>
</html>

対象のアイテムのIDやボタンの一覧を定義したEdit Button Folderの名前やツールチップの文字列などを指定できます。ここらへんはインテリセンスのパラメーター名で直感的に理解できます。