Blazor C#'ta HTML Girişinden Değişken Nasıl Elde Edilir
Yayınlanan: 2024-12-09Blazor C#'ta HTML Girişinden Değişken Nasıl Elde Edilir
Blazor, JavaScript yerine C# ile etkileşimli web uygulamaları oluşturmaya yönelik güçlü bir çerçevedir. Blazor'un temel özelliklerinden biri, C# kodunu HTML öğeleriyle bağlayarak kullanıcı girişlerini yakalamayı ve bunları uygulamanızda kullanmayı kolaylaştırmasıdır. Bu makalede, hem Blazor Server hem de Blazor WebAssembly uygulamalarında Blazor'daki bir HTML giriş öğesinden nasıl değişken alınacağını inceleyeceğiz.
Blazor'un İki Yönlü Veri Bağlamaya Giriş
Blazor, kullanıcı arayüzündeki (UI) değişikliklerin temel C# değişkenini otomatik olarak güncellemesine (veya bunun tersi) olanak tanıyan "iki yönlü veri bağlama" olarak bilinen bir özellik sunar. Kullanıcı tarafından bir HTML giriş alanına girilen verileri yakalamak ve bu değişiklikleri C# kodunuza anında yansıtmak istediğinizde bu son derece kullanışlıdır.
Başlarken
HTML giriş alanından bir değişken almak için birkaç temel bileşene ihtiyacınız vardır:
- HTML Girişi : Kullanıcının veri girdiği giriş alanıdır.
- C# Değişken : Girişten gelen verileri saklayan C# değişkeni.
- Veri Bağlama : Giriş alanı ile C# değişkeni arasındaki bağlantı, genellikle Blazor'daki
@bind
yönergesi aracılığıyla.
Aşağıdaki bölümlerde bunun nasıl çalıştığını göstermek için çeşitli örnekleri inceleyeceğiz.
Örnek 1: Basit Metin Girişi Bağlama
Bir kullanıcının girdisini yakalamanın en basit yolu @bind
yönergesini kullanmaktır. Bu, bir HTML giriş öğesini otomatik olarak bir C# değişkenine bağlar.
Kod Örneği (Tıraş Makinesi Bileşeni)
@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; }
Açıklama:
-
@bind
yönergesi,input
öğesini C#'takiuserName
değişkenine bağlar. Kullanıcı giriş alanına her yazı yazdığındauserName
değişkeni otomatik olarak güncellenir. -
<p>Hello, @userName!</p>
paragrafı,userName
değerini dinamik olarak görüntüler ve kullanıcı yazarken güncellenen metni gerçek zamanlı olarak gösterir.
Bu örnekte, userName
değişkeni giriş alanına bağlanmıştır ve Blazor'un iki yönlü bağlaması, kullanıcı metni değiştirdiğinde userName
değerinin gerçek zamanlı olarak güncellenmesini sağlar.
Örnek 2: Düğme Tıklatıldığında Giriş Alma ve Kullanma
Bazen kullanıcı tarafından girilen veriler üzerinde, değeri göndermek veya daha fazla işlemek için bir düğmeye tıklamak gibi eylemler gerçekleştirmeniz gerekir. Bu Blazor'da da kolaylıkla başarılabilir.
Kod Örneği (Tıraş Makinesi Bileşeni)
@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}"); } }
Açıklama:
-
@bind="age"
direktifi giriş alanınıage
değişkenine bağlar. -
@
düğmenin click olayınıSubmitAge
yöntemine bağlar. - Kullanıcı butona tıkladığında girilen yaşı konsola yazdıran
SubmitAge
metodu çağrılır.
Bu örnekte kullanıcı yaşını girebilmektedir ve “Gönder” butonuna tıkladığında SubmitAge
metodu age
değişkeni ile bir işlem gerçekleştirmek üzere tetiklenmektedir.
Örnek 3: Giriş Doğrulaması
Blazor, veri bağlamayı <EditForm>
gibi form bileşenleriyle birleştirerek giriş doğrulamasını kolayca gerçekleştirmenize olanak tanır.
Kod Örneği (Tıraş Makinesi Bileşeni)
@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; } } }
Açıklama:
-
<EditForm>
bileşeni, giriş alanlarını sarmak ve doğrulama gerçekleştirmek için kullanılır. -
@bind-Value="person.FirstName"
giriş alanınıperson
nesnesininFirstName
özelliğine bağlar. -
DataAnnotationsValidator
bileşeni, girişi doğrulamak için veri ek açıklamalarını ([Required]
gibi) kullanır. - Giriş geçerliyse ve form gönderilirse, verileri işleyen
HandleValidSubmit
yöntemi çağrılır.
Doğrulama:
- Kullanıcı bir ad girmezse (
[Required]
ek açıklamasından dolayı), doğrulama mesajı görünür ve giriş geçerli olana kadar form gönderilmez.
Diğer Giriş Türleriyle Gelişmiş Bağlama
Blazor, metin kutuları, onay kutuları, radyo düğmeleri, açılır menüler vb. gibi çok çeşitli giriş türlerini destekler. Değişkenleri bu öğelerden herhangi birine benzer şekilde bağlayabilirsiniz.
Örnek: Onay Kutusu Bağlama
@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; }
Bu örnekte onay kutusu isSubscribed
değişkenine bağlıdır ve kullanıcı kutuyu işaretlediğinde veya kutunun işaretini kaldırdığında isSubscribed
değeri otomatik olarak güncellenir.
Çözüm
Blazor'un güçlü iki yönlü veri bağlama özelliği sayesinde, Blazor'da bir HTML girişinden değişken almak kolay ve etkilidir. @bind
yönergesini kullanarak, giriş alanlarını hızlı bir şekilde C# değişkenlerine bağlayabilir, kullanıcı arayüzündeki değişikliklerin kodunuza yansıtılmasını veya tam tersini sağlayabilirsiniz.
İster basit formlar ister karmaşık giriş doğrulama mantığı oluşturuyor olun, Blazor'un veri bağlama yetenekleri kullanıcı girişleriyle çalışma sürecini basitleştirir. Blazor, metin kutularından onay kutularına kadar HTML ve C# arasındaki entegrasyonu sorunsuz bir şekilde yönetir ve bu da onu etkileşimli web uygulamaları oluşturmak için mükemmel bir seçim haline getirir.