У меня есть следующая сущность:
public class Ambiente
{
public int AmbienteId { get; set; }
[Display(Name ="Codigo del Ambiente")]
[StringLength(10, ErrorMessage ="El ancho máximo es de 10 caracteres")]
public string Codigo { get; set; }
[Display(Name ="Nombre del Ambiente")]
[StringLength(50, ErrorMessage ="El ancho máximo es de 50 caracteres")]
public string Nombre { get; set; }
[Required(ErrorMessage ="Especifique una etapa")]
[Display(Name ="Nombre de la Etapa")]
public Etapa Etapa { get; set; }
}
, как вы можете видеть, у этого класса есть свойство, которое ссылается на сущность с именем Etapa
public class Etapa
{
public int EtapaId { get; set; }
[Required(ErrorMessage ="Especifique un nombre de Etapa")]
[StringLength(20, ErrorMessage = "El ancho maximo es de 20")]
[Display(Name ="Nombre de la Etapa")]
public string Nombre { get; set; }
}
Этот класс Etapa имеет проверку надсобственность Nombre.Теперь, что касается класса Ambiente, при отправке данных для вставки в базу данных я использую этот код в своем вставочном действии:
[HttpPost]
public IActionResult Insertar(Ambiente ambiente)
{
if (ModelState.IsValid)
{
try
{
_ambienteRepository.Insertar(ambiente);
return RedirectToAction("Index");
}
catch (Exception ex)
{
ModelState.AddModelError("", ex.Message);
}
}
var ambienteViewModel = ObtenerAmbienteViewModel(ambiente);
return View(ambienteViewModel);
}
когда этот код достигает предложения ModelState.IsValid, он выдает false и следующее сообщениеПоявляется:
"Especifique un nombre de Etapa"
Это текст свойства Nombre моего класса Etapa.
Когда я быстро просматриваю свою переменную ambiente по параметру в моем действии Insertar, я вижу следующее:
Эта сущность Etapa используется для заполнения раскрывающегося списка на мой взгляд.Все значения уже существуют в базе данных, поэтому я не собираюсь добавлять записи к этой сущности.
Я не знаю, как обойтивалидация этой ссылочной сущности Etapa.