2013-11-15 40 views
2

我想以編程方式一個一個地驗證模型列表。以編程方式在ASP.NET MVC中驗證模型列表

我試圖TryValidateModel,但看起來像它聚合驗證錯誤,所以,當我走過的10種型號列表循環,如果第5模式是無效的,適用機型6-10 TryValidateModel返回

回答

4

您可以使用控制器方法ValidateModelTryValidateModel

ValidateModel - 如果模型無效則拋出異常。

TryValidateModel - 返回指示模型是否有效的bool。

MSDN

當正在驗證一個模型,對於所有屬性的所有的驗證是 運行如果至少一種形式中輸入被綁定到模型屬性。 TryValidateModel與ValidateModel方法相似,但 TryValidateModel方法不會拋出 InvalidOperationExceptionexception如果模型驗證失敗。

如果您驗證的模型逐一列表中,你可能想通過調用ModelState.Clear()重置ModelState中每個迭代。

+0

這樣做可以在模型未被視圖填充的情況下進行嗎?換句話說,您的模型對象以其他方式填充。 – Matt

+1

@Matt是的,你可以將你想要的任何模型傳遞給這些方法 – Andrei