我有一个CustomValidator
可以在回发时检查一些内容 - 它无法在客户端进行。
我的所有验证器都是隐藏的,因为样式很难看,而且在不常见的情况下,这个特定的验证器失败了,我想在页面重新加载时触发一个很好的引导弹出窗口。
目前,该页面只是重新加载而没有说明为什么它没有进入向导的下一步。
在页面加载后,我可以检测验证器是成功还是失败的最佳方法是什么?
我正在考虑使用HiddenField
,如果验证器无效,请设置值。这似乎是应该已经存在的一种解决方法。
答案 0 :(得分:-1)
您可以向System.Web.Mvc.ModelState
public ActionResult Index(MyViewModel model)
{
if(validation test fails){
ModelState.AddModelError("key","My custom validation failed!");
//where key is a property of the model
return View(); //a @Html.ValidationSummary() in your view will display the error message for you
}
if(ModelState.IsValid){ //this if condition is not required since I return on error in my example but just in case you need for your code it will not be valid since you called ModelState.AddModelError
//validation passed
//do more work
}
//and just in case you needed to manually flush the ModelState of your custom validation
ModelState["key"].Errors.Clear();
}
然后在你看来:
@if (!ViewData.ModelState.IsValid)
{
<script>
$(function() {
$('#modalCustomErrorId').modal('show');
});
</script>
}