强类型的View Helper,用于检查单个属性的验证

时间:2014-10-02 14:47:34

标签: c# asp.net-mvc helper strongly-typed-view

如何在我的视图中检查模型中的单个属性是否存在验证错误?

我意识到我可以做到这一点,但它没有强类型,所以我担心它容易出错:

@if (ViewData.ModelState["MyProperty"].Errors.Count() > 0)
{
    // Show validation error
}

1 个答案:

答案 0 :(得分:1)

您可以使用以下内容:

public static bool IsValidFor<TModel, TProperty>(this TModel model,
                                                 System.Linq.Expressions.Expression<Func<TModel, TProperty>> expression,
                                                 ModelStateDictionary modelState)
{
    string name = ExpressionHelper.GetExpressionText(expression);

    return modelState.IsValidField(name);
}

用法:

if (!model.IsValidFor(x => x.MyProperty, ModelState)) 
{
    // Show validation error
}

礼貌:这answer