code annotation attributes in C#

consoleGuyconsoleGuy
2 min read

dalam EF Core , kita boleh set certain requirement dalam satu2 variable bagi setiap data type dalam code page. contoh

namespace ShoppingCart.Models
{
  public class Supervisor
  {
    public string ID { get; set; }
    public string Name { get; set; }
  }
}

sebelum kita boleh guna annotation ni, kena letak

using System.ComponentModel.DataAnnotations;

so kata kan lah untuk ID tu kita nak nak set Required dan minimum length 2. display as Code (This will change the display name for headers and <label> tags). dan cuma terima uppercase kita boleh set macam ni.

using System.ComponentModel.DataAnnotations;
namespace ShoppingCart.Models
{
  public class Supervisor
  {
    [Required, StringLength(2, MinimumLength = 2), Display(Name = "Code")]
    [RegularExpression(@"[A-Z]+", ErrorMessage = "Only upper case characters are allowed.")]
    public string ID { get; set; }
    [Required]
    public string Name { get; set; }
  }
}

aku tak guna jetbrains tapi aku rasa sini ada tulis banyak info tentang annotation attributes.

so bila kita dah define annotation kat modelpage . kita kena guna tag helper untuk validate benda ni iaitu asp-validation-for . kemudian kat bawah viewPage tu kena insert script

@section Scripts {
  @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}
<form method="post">
  <div class="form-group d-flex">
    <label asp-for="Supervisor.ID" class="p-2 text-right" style="flex:0 0 15%"></label>
    <div style="flex:1 0 auto;width:auto">
      <input asp-for="Supervisor.ID"" class="form-control" />
      <span asp-validation-for="Supervisor.ID" class="text-danger"></span>
    </div>
  </div>
  <div class="form-group d-flex">
    <label asp-for="Supervisor.Name" class="p-2 text-right" style="flex:0 0 15%"></label>
    <div style="flex:1 0 auto;width:auto">
      <input asp-for="Supervisor.Name" class="form-control" />
      <span asp-validation-for="Supervisor.Name" class="text-danger"></span>
    </div>
  </div>
  <div class="form-group d-flex flex-row-reverse">
    <input type="submit" value="Save" class="btn btn-primary btn-sm" />
  </div>
</form>

@section Scripts {
  @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}
0
Subscribe to my newsletter

Read articles from consoleGuy directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

consoleGuy
consoleGuy