2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Blazor】Blazorでパラメーターを入力必須にする方法

Posted at

Blazor でコンポーネントを開発する際、特定のパラメーターを必須にしたい場面があります。この記事では、EditorRequired属性を使ってパラメーターを必須にする方法について解説します。

EditorRequired 属性とは

EditorRequired属性は、Blazor コンポーネントのパラメーターを必須として指定するための属性です。この属性を付けることで、コンポーネント使用時にパラメーターが指定されていない場合にコンパイル警告が表示されます。

基本的な使い方

以下のように[Parameter][EditorRequired]の両方の属性を指定します:

@using Microsoft.AspNetCore.Components

<div class="user-card">
    <h3>@Name</h3>
    <p>Email: @Email</p>
</div>

@code {
    [Parameter]
    [EditorRequired]
    public string Name { get; set; } = string.Empty;

    [Parameter]
    [EditorRequired]
    public string Email { get; set; } = string.Empty;

    [Parameter]
    public string? PhoneNumber { get; set; }
}

上記の例では、NameEmailが必須パラメーターとして定義されています。

コンポーネントの使用例

<!-- 正しい使用例(警告なし) -->
<UserCard Name="田中太郎" Email="tanaka@example.com" />

<!-- 警告が表示される例 -->
<UserCard Email="tanaka@example.com" />  <!-- Nameが未指定 -->
<UserCard Name="田中太郎" />              <!-- Emailが未指定 -->

警告をエラーに変換する設定

より厳密にしたい場合は、プロジェクトファイル(.csproj)で警告をエラーとして扱う設定を追加できます:

<PropertyGroup>
    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
    <!-- または特定の警告のみをエラー化 -->
    <WarningsAsErrors>BL0007</WarningsAsErrors>
</PropertyGroup>

Required 属性との違い

EditorRequiredと似た名前のRequired属性がありますが、用途が異なります:

項目 [EditorRequired] [Required]
主な用途 コンポーネント呼び出し時の必須パラメータ指定 モデルの入力バリデーション
チェックタイミング ビルド時(設計時) 実行時
対象 [Parameter] プロパティ モデルのプロパティ
無指定時の挙動 コンパイル警告(設定でエラー化可) バリデーションエラー(UI でエラーメッセージ表示など)
null 許容の扱い 警告は出るが実行時エラーなし 実行時に必須エラーになる
主な目的 呼び出し忘れ防止(開発者向け) 入力忘れ防止(ユーザー向け)

まとめ

EditorRequired属性を使用することで、Blazor コンポーネントのパラメーターを必須にできます。これにより以下のメリットがあります:

  • コンポーネント使用時の設定漏れを防止
  • 開発時に早期にエラーを発見
  • コンポーネントの仕様を明確化

ただし、完全にビルドエラーにするには追加設定が必要な点にご注意ください。プロジェクトの要件に応じて適切に設定を行い、保守性の高い Blazor アプリケーションを開発しましょう。

参考

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?