---
title: "ウォークスルー:フォームの事前入力用バリュープロバイダーの設定"
slug: "walkthrough--setting-up-a-value-provider-for-prefilling-forms"
abstract: "名前とメールアドレスのフィールドを事前に入力するバリュープロバイダーの設定方法の例です。"
---
# ウォークスルー:フォームの事前入力用バリュープロバイダーの設定

フォーム内のフィールド値がプリ入力され、ユーザーの時間を節約し、一貫性を向上させます。このウォークスルーは [フォームのプリ入力ウォークスルーシリーズ](https://doc.sitecore.com/xp/ja/developers/92/sitecore-experience-manager/prefilling-forms-walkthrough-series.html "Prefilling forms walkthrough series") の第3部であり、名前とメールアドレスのフィールドをプリフィルするバリュープロバイダーの実装方法を説明します。

このウォークスルーでは、以下の方法を説明します:

-   プロバイダークラスを作成する
-   提供者アイテムを作成する
-   フォームを作成する
-   リダイレクトリンクを追加してください
-   事前に記入済みのフォームの結果を確認してください

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

価値提供者を作成する際には、IFieldValueProviderインターフェースから継承するクラスを作成しなければなりません。

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

1.  Visual Studioプロジェクトでフォルダを作成し、ValueProvidersと名付けてください。
    
2.  ValueProvidersフォルダでUserProfileFieldValueProviderクラスを作成し、IFieldValueProviderクラスから継承します。
    
3.  GetValueメソッドを実装して任意の型のオブジェクトを返します。このオブジェクトはInputViewModel実装で適切な型にキャストされます。
    
    UserProfileFieldValueProviderクラスのパラメータはプレーンな文字列として格納されます。例えば、*メール*、*フルネーム*、または使いたい他のユーザープロファイルプロパティキーなどです。
    
    パラメータの他のデータをJSONやXMLとして保存し、そのデータを値提供者の実装で解析することができます。
    
    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.Profileparameters ?? string.Empty;
     }
     }
     }

## 提供者アイテムを作成する

提供者項目を作成するには:

1.  */sitecore/system/Settings/Forms*にアクセスし、「**値提供者**」を右クリックし、「**挿入**」をクリックし、「**テンプレートから挿入**」をクリックしてください。
2.  */sitecore/templates/System/Forms/Value Provider*テンプレートをクリックしてください。
3.  **アイテム名**欄で名前を入力し、「**挿入**」をクリックします。
4.  作成したアイテムにアクセスし、 **設定** セクションの **Model Type** フィールドで値をクラスタイプ名に設定します。例えば、ValueProviderSample.FieldValueProviders.UserProfileFieldValueProvider.
5.  アイテムを保存してください。

## フォームを作成する

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

1.  フォームダッシュボードで「 **作成** 」をクリックし、「 **空白フォーム**」をクリックします。
2.  **フォーム要素**ペインで、**メール**要素をページにドラッグします。**ラベル**欄で*Email*を入力します。
3.  **単行テキスト**要素をページにドラッグします。**ラベル**欄で*Fullname*を入力します。
4.  メール **欄をクリックし** 、 **フォーム要素** の **パネルの詳細設定** セクションの**価値プロバイダー**欄で、先ほど作成したプロバイダーを選択してください。
5.  **Value provider パラメータ**欄に*fullname*を入力してください。
6.  メール **欄をクリックし** 、 **フォーム要素** の **パネルの詳細設定** セクションの**価値プロバイダー**欄で、先ほど作成したプロバイダーを選択してください。
7.  **Valueプロバイダーパラメータ**欄に*メールアドレス*を入力してください。
8.  フォームを保存して、 *User Profile Form*と名付けてください。
9.  ユーザープロフィールフォームをウェブページに追加し、 *User Profile Page*と名付けてください。
10.  前回のウォークスルーで作成したログアウトフォームをこのユーザープロフィールページに追加してください。

## リダイレクトリンクを追加してください

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

1.  ログインフォームに「ページへのリダイレクト」送信アクションを追加してください。リダイレクトページとして「 **ユーザープロフィールウェブページ** 」をクリックしてください。
2.  登録フォームで、登録が成功した後、ページをログインウェブページへリダイレクトしてください。
3.  ログアウトフォームで、ログアウトが成功したらログインウェブページにリダイレクトしてください。

## 事前に記入済みのフォームの結果を確認してください

事前に記入済みのフォーム結果を確認するには:

1.  「 **登録** 」ダイアログボックスでユーザーを登録します。次にログインページで、ユーザーのメールアドレスとパスワードを使ってログインします。
    
2.  ログイン成功後、ユーザープロフィールページにこのユーザーのフルネームとメールアドレスが表示されます。ユーザープロファイルページからログアウトするには、ログ **アウト**をクリックしてください。ログインしていないユーザーの場合、ユーザープロファイルページは空欄のままです。
    
    ![Register dialog box with password confirmation.](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/92/sitecore-experience-manager/images/FORMS-value-provider-check-form.png)