在包含验证的典型ASP.NET网页页面中,会出现类似的内容:
if (IsPost && Validation.IsValid()) {
// Process valid data here
}
在我的HTML中,我需要为某些元素添加各种类以用于演示目的。在那里调用Validation.IsValid()是否安全,还是会一遍又一遍地触发验证?
编辑:为了说清楚,我在询问有关IsValid的其他调用,就像在cshtml文件中的某个地方一样:
<input type="text" class="forminput @(Validation.IsValid() ? "" : "error")" />
答案 0 :(得分:1)
在没有任何参数的情况下调用Validation.IsValid()
会导致每次调用方法时都会检查每个表单字段的验证错误。如果在之前的通话中已将条目添加到ModelState
字典中,则在后续通话中它仍然存在 - 假设在两次通话之间没有Postback
,这将是当然清楚所有的状态。
您可以通过将名称传递给方法来限制检查的字段数:
if(Validation.IsValid("Email")){
// will only examine the form field named "Email"
}