Cum să obțineți o variabilă de la intrarea HTML în Blazor C#
Publicat: 2024-12-09Cum să obțineți o variabilă de la intrarea HTML în Blazor C#
Blazor este un cadru puternic pentru construirea de aplicații web interactive cu C#, mai degrabă decât JavaScript. Una dintre caracteristicile de bază ale Blazor este capacitatea de a lega codul C# cu elemente HTML, facilitând capturarea intrărilor utilizatorilor și utilizarea lor în aplicația dvs. În acest articol, vom explora cum să obținem o variabilă dintr-un element de intrare HTML în Blazor, atât în Blazor Server, cât și în aplicațiile Blazor WebAssembly.
Introducere în legarea de date bidirecțională a Blazor
Blazor oferă o caracteristică cunoscută sub numele de „legare de date în două sensuri”, care permite modificări în interfața cu utilizatorul (UI) pentru a actualiza automat variabila C# de bază și invers. Acest lucru este extrem de util atunci când doriți să capturați datele introduse de utilizator într-un câmp de introducere HTML și să reflectați imediat acele modificări în codul dvs. C#.
Noțiuni de bază

Pentru a obține o variabilă dintr-un câmp de introducere HTML, aveți nevoie de câteva componente cheie:
- Intrare HTML : câmpul de introducere în care utilizatorul introduce date.
- Variabila C# : Variabila C# care stochează datele de la intrare.
- Legarea datelor : conexiunea dintre câmpul de intrare și variabila C#, de obicei prin directiva
@binddin Blazor.
În secțiunile următoare, vom parcurge diverse exemple pentru a demonstra cum funcționează acest lucru.
Exemplul 1: Legare simplă de introducere a textului
Cea mai simplă modalitate de a captura intrarea unui utilizator este utilizarea directivei @bind . Aceasta leagă automat un element de intrare HTML la o variabilă C#.
Exemplu de cod (componenta Razor)
@page "/input-example" <h3>Simple Input Binding in Blazor</h3> <label for="userName">Enter your name:</label> <input type="text" @bind="userName" /> <p>Hello, @userName!</p> @code { private string userName = string.Empty; }Explicaţie:
- Directiva
@bindleagă elementulinputla variabilauserNameîn C#. Ori de câte ori utilizatorul introduce în câmpul de intrare, variabilauserNameeste actualizată automat. - Paragraful
<p>Hello, @userName!</p>afișează dinamic valoareauserName, afișând textul actualizat în timp real pe măsură ce utilizatorul scrie.
În acest exemplu, variabila userName este legată de câmpul de intrare, iar legarea bidirecțională a lui Blazor asigură că ori de câte ori utilizatorul modifică textul, valoarea userName este actualizată în timp real.
Exemplul 2: Obținerea și utilizarea intrării la clic pe buton
Uneori trebuie să efectuați acțiuni asupra datelor introduse de utilizator, cum ar fi să faceți clic pe un buton pentru a trimite valoarea sau a o procesa în continuare. Acest lucru poate fi ușor de realizat și în Blazor.
Exemplu de cod (componenta Razor)
@page "/submit-input" <h3>Submit Input in Blazor</h3> <label for="age">Enter your age:</label> <input type="number" @bind="age" /> <button @>Submit</button> <p>You entered: @age</p> @code { private int age; private void SubmitAge() { // Do something with the age variable (eg, validation, submission, etc.) Console.WriteLine($"User's age is {age}"); } }Explicaţie:
- Directiva
@bind="age"leagă câmpul de intrare la variabilaage. -
@leagă evenimentul de clic al butonului de metodaSubmitAge. - Când utilizatorul face clic pe butonul, este apelată metoda
SubmitAge, care imprimă vârsta introdusă pe consolă.
În acest exemplu, utilizatorul își poate introduce vârsta, iar când face clic pe butonul „Trimite”, metoda SubmitAge este declanșată pentru a efectua o acțiune cu variabila age .

Exemplul 3: Validarea intrării
Blazor vă permite să efectuați validarea intrărilor cu ușurință, combinând legarea datelor cu componente de formular precum <EditForm> .
Exemplu de cod (componenta Razor)
@page "/validation-example" <h3>Input Validation in Blazor</h3> <EditForm Model="@person" OnValidSubmit="HandleValidSubmit"> <DataAnnotationsValidator /> <ValidationSummary /> <label for="firstName">First Name:</label> <InputText @bind-Value="person.FirstName" /> <ValidationMessage For="@(() => person.FirstName)" /> <button type="submit">Submit</button> </EditForm> <p>You entered: @person.FirstName</p> @code { private Person person = new Person(); private void HandleValidSubmit() { // Process the valid input Console.WriteLine($"First Name: {person.FirstName}"); } public class Person { [Required] public string FirstName { get; set; } } }Explicaţie:
- Componenta
<EditForm>este folosită pentru a încheia câmpurile de intrare și pentru a efectua validarea. -
@bind-Value="person.FirstName"leagă câmpul de intrare la proprietateaFirstNamea obiectuluiperson. - Componenta
DataAnnotationsValidatorutilizează adnotări de date (cum ar fi[Required]) pentru a valida intrarea. - Dacă intrarea este validă și formularul este trimis, se apelează metoda
HandleValidSubmit, procesând datele.
Validare:
- Dacă utilizatorul nu furnizează un prenume (din cauza adnotării
[Required]), va apărea mesajul de validare, iar formularul nu va fi trimis până când introducerea este validă.
Legare avansată cu alte tipuri de intrare
Blazor acceptă o gamă largă de tipuri de introducere, cum ar fi casete de text, casete de selectare, butoane radio, meniuri derulante etc. Puteți lega variabile la oricare dintre aceste elemente într-un mod similar.
Exemplu: Legarea casetei de selectare
@page "/checkbox-example" <h3>Checkbox Binding in Blazor</h3> <label for="subscribe">Subscribe to newsletter:</label> <input type="checkbox" @bind="isSubscribed" /> <p>You are @(isSubscribed ? "subscribed" : "not subscribed") to the newsletter.</p> @code { private bool isSubscribed = false; } În acest exemplu, caseta de selectare este legată de variabila isSubscribed , iar atunci când utilizatorul bifează sau debifează caseta, valoarea isSubscribed este actualizată automat.
Concluzie
Obținerea unei variabile dintr-o intrare HTML în Blazor este ușoară și eficientă, datorită legăturii de date în două sensuri puternice a Blazor. Folosind directiva @bind , puteți lega rapid câmpurile de intrare la variabilele C#, asigurându-vă că modificările din interfața de utilizare sunt reflectate în codul dvs. și invers.
Indiferent dacă construiți formulare simple sau o logică complexă de validare a intrărilor, capabilitățile Blazor de legare a datelor simplifică procesul de lucru cu intrările utilizatorului. De la casete de text la casete de selectare, Blazor gestionează integrarea între HTML și C# fără probleme, făcându-l o alegere excelentă pentru construirea de aplicații web interactive.
