本文へスキップ
BecomeCoder

Blazorコース · 第5章 フォームと入力 · レッスン17

フォームの基本 ― 入力を集めて送信する

ブラウザで完結

導入

まずは特別な部品を使わず、ここまでの@bind@onclickだけでフォームを作ってみましょう。複数の入力を変数に集め、「送信」ボタンで受け取って結果を表示する——フォームの本質はこれだけです。

説明

各入力を@bindで変数に結び、送信ボタンの@onclickでまとめて処理します。

<h3>お問い合わせフォーム</h3>

<div>
    <label>お名前</label>
    <input @bind="name" placeholder="山田 太郎" />
</div>
<div>
    <label>メッセージ</label>
    <textarea @bind="message" placeholder="ご用件をどうぞ"></textarea>
</div>
<button @onclick="Submit">送信</button>

@if (sent)
{
    <p>✅ @name さん、送信を受け付けました!</p>
    <p>内容: @message</p>
}

@code {
    private string name = "";
    private string message = "";
    private bool sent = false;

    private void Submit()
    {
        sent = true;   // 送信済みフラグを立てると、下の @if が表示される
    }
}
  • 各入力を@bindで変数に結ぶ(テキストは<input>、複数行は<textarea>
  • 「送信」の@onclickで、集めた値を使って処理する(ここではフラグを立てて結果表示)
  • @if (sent)で、送信後だけ結果を出す

やってみよう

名前とメッセージを入力して「送信」を押すと、下に確認メッセージが出ます。入力を空のまま送信するとどうなるかも見てみましょう(今は空でも送れてしまいます——次のレッスンで「検証」を足します)。

演習

送信後にもう一度書けるよう、「リセット」ボタンを足してください(namemessageを空に、sentfalseに戻す)。

ヒント1を見る

private void Reset() { name = ""; message = ""; sent = false; }を作ります。

ヒント2を見る

<button @onclick="Reset">リセット</button>を置けば、押すと初期状態に戻ります。

次回: Blazor専用のフォーム部品EditFormを使い、検証と連携させます。

実際に動かしてみよう

下のエディタに .razor を書くと、右側のプレビューにその場で Blazor 風のUIが描画されます。`@名前` の埋め込み、`@bind` の双方向バインディング、`@onclick` のカウンターやトグル、`@if`/`@foreach` の分岐・繰り返しはそのまま動きます。本文の .razor を打ち込んだり、`@code` のフィールドやハンドラを書き換えたりして、状態と画面の連動を確かめながら進めましょう(本物のBlazorではなく描画と簡単な対話を再現した学習用プレビューです。DI・HttpClient・JS相互運用や @code の本格的なC#ロジックは実行されないので、それらは dotnet で実際のプロジェクトを作って試します)。

Blazor (.razor) プレビュー

書いた .razor をその場で Blazor 風の画面に描画する学習用プレビューを読み込みます(本物のBlazorではなく、Razor構文の描画・@bindの双方向バインディング・@onclick/@if/@foreach の簡単な対話を再現したものです。@code の本格的なC#ロジックやDI・HTTP・JS相互運用は実行されません)。
スクロールして表示された時点でも自動で読み込まれます。