.NTE MVC cómo hacer algunas de las propiedades para verificar ModelState

En el desarrollo de MVC, la validación del modelo es muy común, debemos usar son todos la verificación habitual de

if(ModelState.IsValid)
{
	//验证成功要做的事
	.....
}

Pero a veces tenemos que verificar la pieza, como la modificación de la información del usuario como usuario de actualización, no toda la información de actualización a los usuarios, por lo que cuando el modelo es incompleto, y ciertamente no será verificada.
Aquí, una clase del modelo, como un ejemplo

public class User
{
    [Required]
    public int ID { get; set; }

    [Required]
    [StringLength(18,MinimumLength = 2,ErrorMessage = "名称字符长度在2-18之间")]
    public string Name { get; set; }

    [Required]
    [Range(0,100,ErrorMessage = "年龄在0-100")]
    public int Age { get; set; }
}

Caso 1: El término no valida relativamente pequeña

Podemos utilizar el Removemétodo

//不验证年龄项
ModelState.Remove("Age");

Caso 2: do relativamente pequeña para verificar artículos

Por desgracia, veo el MSDN no parece encontrar el método de esta función (si lo encuentra, por favor deje un área de mensajes de comentarios = =)
Así que ahora escribir un método de extensión para lograr esta función

/// <summary>
/// 验证实体模型中的部分属性
/// </summary>
/// <param name="ModelState"></param>
/// <param name="keys">要验证的属性List集合</param>
/// <returns></returns>
public static bool IsPartValid(this ModelStateDictionary ModelState,List<string> keys)
{
    //遍历要验证部分属性
    foreach (var item in keys)
    {
        //尝试获取对应键的值
        //有不符合的模型属性 - Errors错误集合大于0
        if (ModelState.TryGetValue(item,out ModelState modelState) && modelState.Errors.Count > 0)          
            return false;
    }
    return true;
}

A continuación, se utiliza directamente, a querer comprobar en una colección

//验证模型中的部分属性
if (ModelState.IsPartValid(new List<string> { "Name", "Age" }))
{
	//验证通过,要做的事
	......
}
Publicado 62 artículos originales · ganado elogios 68 · vistas 160 000 +

Supongo que te gusta

Origin blog.csdn.net/ZUFE_ZXh/article/details/102600913
Recomendado
Clasificación