Validation.IsValid()是否缓存其结果?

时间:2014-06-01 16:19:18

标签: validation asp.net-webpages

在包含验证的典型ASP.NET网页页面中,会出现类似的内容:

if (IsPost && Validation.IsValid()) {
    // Process valid data here
}

在我的HTML中,我需要为某些元素添加各种类以用于演示目的。在那里调用Validation.IsValid()是否安全,还是会一遍又一遍地触发验证?

编辑:为了说清楚,我在询问有关IsValid的其他调用,就像在cshtml文件中的某个地方一样:

<input type="text" class="forminput @(Validation.IsValid() ? "" : "error")" />

1 个答案:

答案 0 :(得分:1)

在没有任何参数的情况下调用Validation.IsValid()会导致每次调用方法时都会检查每个表单字段的验证错误。如果在之前的通话中已将条目添加到ModelState字典中,则在后续通话中它仍然存在 - 假设在两次通话之间没有Postback,这将是当然清楚所有的状态。

您可以通过将名称传递给方法来限制检查的字段数:

if(Validation.IsValid("Email")){
    // will only examine the form field named "Email"
}