チュートリアル: フォームの事前入力のための値プロバイダーの設定

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

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

フォームに事前に入力されたフィールド値により、ユーザーの時間を節約し、一貫性を向上させることができます。このチュートリアルは、フォームの事前入力チュートリアル シリーズの パート3であり、名前フィールドと電子メール フィールドを事前入力する値プロバイダーを実装する方法について説明します。

このチュートリアルでは、次の方法について説明します。

  • プロバイダー クラスを作成する

  • プロバイダー項目を作成する

  • フォームを作成する

  • リダイレクトリンクを追加する

  • 事前入力されたフォームの結果を確認する

プロバイダー クラスを作成する

値プロバイダを作成するときは、IFieldValueProviderインターフェイスから継承するクラスを作成する必要があります。

プロバイダ・クラスを作成するには、次のようにします。

  1. Visual Studioプロジェクトでフォルダを作成し、ValueProvidersという名前を付けます。

  2. ValueProvidersフォルダーにUserProfileFieldValueProviderクラスを作成し、IFieldValueProviderクラスから継承します。

  3. 任意の型のオブジェクトを返すGetValueメソッドを実装します。このオブジェクトは、InputViewModel実装で適切な型にキャストされます。

    UserProfileFieldValueProviderクラスのパラメーターは、プレーンな文字列として格納されます。たとえば、emailfullname、または使用するその他のユーザープロファイルプロパティキーなどです。

    パラメーターの他のデータ (JSONやXMLなど) を格納し、そのデータを値プロバイダーの実装で解析できます。

    RequestResponse
     public class UserProfileFieldValueProvider : IFieldValueProvider
        {
            public User User => Context.User;
    
            public FieldValueProviderContext ValueProviderContext { get; set; }
    
            public object GetValue(string parameters)
            {
                if (User == null || !User.IsAuthenticated)
                {
                    return string.Empty;
                }
    
                switch (parameters)
                {
                    case "name":
                    case "username":
                        return User.Name;
                    case "email":
                        return User.Profile.Email;
                    case "fullname":
                        return User.Profile.FullName;
                    default:
                        return User.Profile[parameters] ?? string.Empty;
                }
            }
        }
    

プロバイダー項目を作成する

プロバイダー項目を作成するには:

  1. /sitecore/system/Settings/Formsに移動し、Value Providersを右クリックし、Insertをクリックして、Insert from Templateをクリックします。

  2. /sitecore/templates/System/Forms/Value Providerテンプレートをクリックします。

  3. Item Nameフィールドに名前を入力し、Insertをクリックします。

  4. 作成したアイテムに移動し、SettingsセクションのModel Typeフィールドで、値をクラス タイプ名に設定します。たとえば、ValueProviderSample.FieldValueProviders.UserProfileFieldValueProvider.

  5. アイテムを保存します。

フォームを作成する

フォームを作成するには:

  1. Formsダッシュボードで、「 Create 」をクリックし、「 Blank form」をクリックします。

  2. Form elementsウィンドウで、Email要素をページにドラッグします。Labelフィールドに「Email」と入力します。

  3. Single-line text要素をページにドラッグします。LabelフィールドにFullnameと入力します。

  4. Emailフィールドをクリックし、Form elementsペインのAdvanced settingsセクションのValue providerフィールドで、前に作成したプロバイダーを選択します。

  5. Value provider parametersフィールドにfullnameと入力します。

  6. Emailフィールドをクリックし、Form elementsペインのAdvanced settingsセクションのValue providerフィールドで、前に作成したプロバイダーを選択します。

  7. Value provider parametersフィールドにemailと入力します。

  8. フォームを保存し、User Profile Formという名前を付けます。

  9. ユーザー プロファイル フォームをWebページに追加し、User Profile Pageという名前を付けます。

  10. 前のチュートリアルで作成したログアウト フォームをこのユーザー プロファイル ページに追加します。

リダイレクトリンクを追加する

リダイレクトリンクを追加するには:

  1. ログインフォームに「ページにリダイレクト」送信アクションを追加します。ページへのリダイレクトとしてUser Profile web pageをクリックします。

  2. 登録が成功したら、登録フォームでページをログインWebページにリダイレクトします。

  3. ログアウトフォームで、ログアウトが成功したらログインWebページにリダイレクトします。

事前入力されたフォームの結果を確認する

事前入力されたフォームの結果を確認するには:

  1. Registerダイアログボックスで、ユーザーを登録します。次に、ログインページで、ユーザーのメールアドレスとパスワードを使用してログインします。

  2. ログインが成功すると、ユーザープロファイルページにこのユーザーのフルネームとメールアドレスが表示されます。ユーザープロファイルページからログアウトするには、「 Logout」をクリックします。ログインしているユーザーがいない場合、ユーザープロファイルページは空白のままになります。

    Register dialog box with password confirmation.

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

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