ModelStateを確認するために、いくつかのプロパティを作成する方法.NTE MVC

我々は、すべての通常の検証されている使用する必要がありますMVCの開発では、モデルの検証は、非常に一般的です

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

しかし、時には、私たちはそうモデルが不完全な場合、確かに検証されることはありません、そのような更新のユーザーではなく、すべてのユーザーの更新情報などのユーザ情報を変更するよう、一部を確認する必要があります。
一例として、モデルクラスをここに

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; }
}

ケース1:用語は、比較的小さな検証しません

我々は使用することができますRemove方法を

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

ケース2:項目を確認するために、比較的少ないください

残念ながら、私は(= =あなたがそれを見つけた場合、メッセージのコメントエリアを残してください)MSDNは、この機能の方法を見つけるように見えるしません参照
だから今、この機能を実現するために拡張メソッドを書きます

/// <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;
}

そして、コレクションにそれを検証するために、直接使用

//验证模型中的部分属性
if (ModelState.IsPartValid(new List<string> { "Name", "Age" }))
{
	//验证通过,要做的事
	......
}
公開された62元の記事 ウォン称賛68 ビュー160 000 +

おすすめ

転載: blog.csdn.net/ZUFE_ZXh/article/details/102600913