Ошибка при валидации на атрибутах в блоке If
при попытке валидации с CreatePhoneViewModel приходят обьект Phone и list brands я наполняю viewmodel.brand данными с базы но при этом валидация все равно ругает что поле обязательное к заполнения я не могу понять никаких атрибутов Required на этом листе нету
public IActionResult Create(CreatePhoneViewModel viewModel)
{
viewModel.Brands = _brandSerive.GetAll()
.Select(
brand => new BrandPageViewModel(){
Id = brand.Id,
Name = brand.Name,
Email = brand.Email,
DateTime = brand.DateTime
}).ToList();
if (!ModelState.IsValid) **не проходит If**
{
return View(viewModel);
}
_phoneService.Create(viewModel);
return RedirectToAction("Index");
}
введите сюда описание изображения
это моя вью модель брендов
using System.ComponentModel.DataAnnotations;
using Microsoft.AspNetCore.Mvc;
namespace WebApplication5.ViewModel;
public class CreateBrandPageViewModel
{
public Guid Id { get; set; }
[Required(ErrorMessage = "Поле обязательно для заполнения")]
[StringLength(50, MinimumLength = 3, ErrorMessage = "Минимальное количество щзнаков: 3, Максимальное - 50")]
[DataType(DataType.Text, ErrorMessage = "тут должен быть только текст")]
public string Name { get; set; }
[Required(ErrorMessage = "Поле обязательно для заполнения")]
[StringLength(50, MinimumLength = 3, ErrorMessage = "Минимальное количество знаков: 3, Максимальное - 50")]
[DataType(DataType.EmailAddress, ErrorMessage = "тут должен быть только Email")]
public string Email { get; set; }
[Required(ErrorMessage = "Поле обязательно для заполнения")]
[Range(typeof(DateTime), "15/04/1923", "15/04/2123", ErrorMessage = "Дата должна быть между 15/04/1923 и 15/04/2123")]
[DataType(DataType.DateTime, ErrorMessage = "тут должен быть только Дата")]
public DateTime? DateTime { get; set; }
}
моя вью модель создания телефонов
public class CreatePhoneViewModel
{
public PhoneViewModel Phone { get; set; }
public List<BrandPageViewModel> Brands { get; set; }
}
моя вью модель телефонов
using WebApplication5.Models;
namespace WebApplication5.ViewModel;
public class PhoneViewModel
{
public Guid Id { get; set; }
public string Name { get; set; }
public string OperatingSystem { get; set; }
public decimal? Price { get; set; }
public decimal? BuiltInMemory { get; set; }
public Brand Brand { get; set; }
public Guid BrandId { get; set; }
public DateTime CreateAt { get; set; }
public DateTime UpdateAt { get; set; }
}
Источник: Stack Overflow на русском