簡體   English   中英

如何在C#MVC中獲取每個列表項驗證錯誤

[英]How Get Each List item Validation Error in C# MVC

我有一個Put方法,首先接收一個對象類,現在它接收它們的列表。 我使用de ModelState.IsValid方法並得到所有錯誤,但我不知道女巫元素有錯誤; 所以我把它們作為一個列表,嘗試驗證每個列表。

public IActionResult Put([FromBody]List<LIB_ColaboradorRegistroModeloCondicionLaboral> Colaboradores)
{
    LIB_ControlResultado oCRB = new LIB_ControlResultado();
    var adColaboradores = new List<AD_ColaboradorRegistro>();
    AD_ColaboradorRegistro adColaborador = new AD_ColaboradorRegistro();
    // HERE VALIDATES ALL MODEL BUT I DONT KNOW WITCH ELEMENT HAS THE PROBLEM
    //if (!ModelState.IsValid)
    //{
    //IEnumerable<ModelError> allErrors = ModelState.Values.SelectMany(v => v.Errors);
    //string detalle = "{";
    //foreach (ModelError item in allErrors)
    //{
    //    string newdetalle = item.ErrorMessage.ToString();
    //   detalle += " Error de Campos: " + ReemplazarRespuestas(newdetalle) + ",";
    //}
    //oCRB.Descripcion = detalle + " }";
    //}
    if (oCRB.Resultado)
    {
        try
        {
            foreach (var Colaborador in Colaboradores)
            {
                adColaborador = Colaborador.Cast<AD_ColaboradorRegistro>();     
                bool valid = TryValidateModel(adColaborador);
                if (valid)
                {
                    //OK
                }
                else
                {
                    //HERE I NEED TO GET THE VALIDATION ERRORS
                    LIB_ControlResultado oa = new LIB_ControlResultado() { Rut = adColaborador.RUT , NumeroContrato = null};
                } 
            }
        }
        catch (Exception ex)
        {
            //
        }
    }
    return oCRB.Resultado ? Ok(ListaResultados) : (IActionResult)BadRequest(ListaResultados);
}

ModelState屬性是實現IEnumerable<T>接口的ModelStateDictionary類。 這意味着您可以使用LINQ來獲取無效的條目。

var invalidItems = ModelState.Where(ms => ms.Value.Errors.Any());

foreach (ModelState item in invalidItems)
{
    // Here you have access to item.Key which is name of the property
    // And value which is current model state for property 
}

希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM