2014-10-02 70 views
0

如何從我的視圖中檢查模型中的單個屬性是否存在驗證錯誤?強類型查看助手檢查單個屬性的驗證

我知道我能做到這一點,但它不是強類型的,所以我很擔心這是容易出錯:

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

回答

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

+0

謝謝!我將會放棄這一點。當我知道這是正確的,我會標記它是正確的。 :) – Luke 2014-10-02 15:15:01