0Pricing
C# Academy · Pelajaran

Validasi Anotasi Data

Validasikan model dengan atribut.

Validasi Anotasi Data adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C# Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C# Academy mencakup 4 pelajaran total.

Apa Itu Validasi Anotasi Data?

Anotasi Data adalah atribut yang Anda tempatkan pada properti model untuk menyatakan aturan validasi langsung di dalam kelas C#. ASP.NET Core membaca atribut ini selama pengikatan model dan secara otomatis memvalidasi permintaan yang masuk.

Anotasi ini berada di namespace System.ComponentModel.DataAnnotations.

using System.ComponentModel.DataAnnotations;

public class RegisterRequest
{
    [Required]
    public string Username { get; set; }
}

Atribut [Required]

[Required] memastikan bahwa sebuah properti tidak bernilai null dan secara bawaan bukan string kosong. Jika klien tidak menyertakan bidang tersebut, validasi model gagal sebelum tindakan Anda dijalankan.

Anda dapat menyesuaikan pesannya dengan ErrorMessage.

public class RegisterRequest
{
    [Required(ErrorMessage = "Username is required.")]
    public string Username { get; set; }

    [Required]
    public string Password { get; set; }
}

Memvalidasi Angka dengan [Range]

[Range] membatasi nilai numerik pada nilai minimum dan maksimum yang termasuk dalam rentang. Atribut ini dapat digunakan dengan int, double, decimal, dan tipe lainnya.

Gunakan atribut ini untuk usia, jumlah, peringkat, dan angka lain yang memiliki batas.

public class ProductRequest
{
    [Range(1, 1000, ErrorMessage = "Quantity must be between 1 and 1000.")]
    public int Quantity { get; set; }

    [Range(0.01, 9999.99)]
    public decimal Price { get; set; }
}

Memvalidasi Email dengan [EmailAddress]

[EmailAddress] memeriksa apakah sebuah string tampak seperti alamat email yang valid. Gabungkan dengan [Required] agar bidang tersebut tersedia dan memiliki format yang benar.

public class ContactRequest
{
    [Required]
    [EmailAddress(ErrorMessage = "Please enter a valid email.")]
    public string Email { get; set; }
}

Batas Panjang Teks

[StringLength] menetapkan panjang maksimum dan, secara opsional, panjang minimum untuk teks. [MinLength] dan [MaxLength] adalah alternatif yang lebih sederhana.

public class RegisterRequest
{
    [Required]
    [StringLength(20, MinimumLength = 3)]
    public string Username { get; set; }

    [MaxLength(500)]
    public string Bio { get; set; }
}

Pencocokan Pola dengan [RegularExpression]

[RegularExpression] memvalidasi string berdasarkan pola ekspresi reguler. Atribut ini ideal untuk format seperti nomor telepon, kode pos, atau slug.

public class ProfileRequest
{
    [RegularExpression(@"^[a-z0-9-]+$",
        ErrorMessage = "Slug may only contain lowercase letters, digits and dashes.")]
    public string Slug { get; set; }
}

Membandingkan Dua Bidang dengan [Compare]

[Compare] memastikan bahwa satu properti cocok dengan properti lainnya. Contoh yang umum adalah mengonfirmasi kata sandi.

public class RegisterRequest
{
    [Required]
    public string Password { get; set; }

    [Compare(nameof(Password), ErrorMessage = "Passwords do not match.")]
    public string ConfirmPassword { get; set; }
}

Bagaimana ModelState Melaporkan Kesalahan

Ketika validasi gagal, ASP.NET Core mengisi ModelState dengan kesalahan. Pada pengontrol API yang diberi atribut [ApiController], permintaan yang tidak valid secara otomatis menghasilkan respons 400, sehingga Anda hampir tidak perlu memeriksanya secara manual.

[ApiController]
[Route("api/[controller]")]
public class AccountController : ControllerBase
{
    [HttpPost("register")]
    public IActionResult Register(RegisterRequest request)
    {
        // [ApiController] already returned 400 if invalid
        return Ok("Registered " + request.Username);
    }
}

Memeriksa ModelState Secara Manual

Tanpa [ApiController], misalnya dalam pengontrol MVC, Anda sendiri memeriksa ModelState.IsValid dan menentukan cara memberikan respons.

public IActionResult Register(RegisterRequest request)
{
    if (!ModelState.IsValid)
    {
        return BadRequest(ModelState);
    }
    return Ok();
}

Menggabungkan Beberapa Anotasi

Anotasi dapat ditumpuk. Satu properti dapat memiliki beberapa atribut, dan semuanya harus lulus. Urutan tidak memengaruhi evaluasi, tetapi susunlah agar tetap mudah dibaca.

public class SignupRequest
{
    [Required]
    [EmailAddress]
    [StringLength(254)]
    public string Email { get; set; }

    [Required]
    [Range(18, 120, ErrorMessage = "Must be 18 or older.")]
    public int Age { get; set; }
}

Saat Anotasi Data Tidak Memadai

Anotasi Data sangat baik untuk aturan sederhana dan deklaratif. Namun, logika lintas properti, pencarian basis data, atau aturan kondisional ("wajib hanya ketika X") dengan cepat menjadi rumit. Di sinilah FluentValidation unggul, dan topik ini akan dibahas berikutnya.

Pemeriksaan Singkat

Uji pemahaman Anda tentang anotasi data.

Ringkasan

Anda telah mempelajari bahwa Anotasi Data menyatakan aturan validasi sebagai atribut: [Required] untuk memastikan keberadaan, [Range] untuk batas numerik, [EmailAddress] untuk format email, serta [StringLength], [RegularExpression], dan [Compare]. Dengan [ApiController], kegagalan secara otomatis menghasilkan respons 400 melalui ModelState. Untuk aturan yang kompleks, gunakan FluentValidation berikutnya.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Validasi Anotasi Data” gratis?

Ya — teks lengkap “Validasi Anotasi Data” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C# Academy, upgrade ke CoddyKit PRO. Kursus C# Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Validasi Anotasi Data”?

Validasikan model dengan atribut. Kamu berlatih C# Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai C# Academy?

Tidak diperlukan pengalaman sebelumnya. C# Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Validasi Anotasi Data” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran C# Academy ini?

Ya. Setiap pelajaran C# Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Validasi Anotasi Data
  2. Aturan FluentValidation
  3. Aturan Kustom dan Kondisional
  4. Mengintegrasikan Validasi dengan API
← Kembali ke C# Academy