I am developing a web app with ASP.NET Core MVC, and I have a problem with model validation.
When I set validation in class and then use it in view model, validation does not work. How can I struggle with it?
This is my code:
public class Il : IEntity
{
[Required(ErrorMessage = "Kodu boş geçilemez")]
public int IlKodu { get; set; }
public int UlkeId { get; set; }
[Required(ErrorMessage = "Ad boş geçilemez")]
public string Ad { get; set; }
public int Id { get; set; }
public DateTime? KayitTarihi { get; set; }
public DateTime? GuncellemeTarihi { get; set; }
}
ViewModel class;
public class IlAddViewModel
{
public Il Il { get; set; }
public List<Ulke> Ulkeler{ get; set; }
}
Then the view:
<div class="container pt-4 eklemeDiv col-4">
<form asp-controller="Il" asp-action="Add" asp-area="Admin" method="post">
<div class="form-group">
<label asp-for="Il.IlKodu">Il Kodu</label>
<input asp-for="Il.IlKodu" class="form-control" placeholder="İl Kodu Giriniz">
<span asp-validation-for="Il.IlKodu" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Il.Ad">Il Kodu</label>
<input asp-for="Il.Ad" class="form-control" placeholder="İl Kodu Giriniz">
<span asp-validation-for="Il.Ad" class="text-danger"></span>
</div>
<div class="form-group">
<label >Ülke</label>
<select style="width: 100%;height:30px" id="selectIl" asp-for="Il.UlkeId"
asp-items="@(new SelectList(Model.Ulkeler,"Id","Ad"))">
<option>Lütfen Seçim Yapınız</option>
</select>
</div>
<input id="btnIlEkle" type="submit" value="Ekle" class="btn btn-xs btn-success" />
<a class="btn btn-xs btn-primary" asp-action="Anasayfa" asp-area="Admin" asp-controller="Admin"><i class="fas fa-chevron-left"></i>Anasayfaya Dön</a>
</form>
</div>
The view model does not show validation messages in view. And also how can I show validation messages for list elements?
Area?@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers